NOME¶
capget, capset - seleciona/obtém as habilidades do processo
SINOPSE¶
#undef _POSIX_SOURCE
#include <sys/capability.h>
int capget(cap_user_header_t header, cap_user_data_t
data);
int capset(cap_user_header_t header, const cap_user_data_t
data);
DESCRIÇÃO¶
Como pertence ao Linux 2.2, o poder do superusuário foi dividido em um
conjunto distinto de habilidades. Cada um dos processos tem um conjunto
efetivo de habilidades identificando quais habilidades (se alguma) podem ser
usadas atualmente. Cada um dos processos também tem um conjunto
hereditário de habilidades que pode ser passado atráves de um
execve(2) e um conjunto de habilidades permitidas que ele pode fazer efetivas
ou hereditárias.
Estas duas funções são a interface pura do kernel para
obtenção e selecionamento de habilidades. Não somente são
específicas para o Linux, mas a API do kernel é apta para mudar e
usar estas funções (em particular o formanto de tipos
cap_user_*_t ) é sujeita a mudanças em cada uma das
revisões do kernel.
As interfaces portáveis são
cap_set_proc(3) e
cap_get_proc(3); se possível você pode usar estas interfaces
em aplicações. Se você desejar usar as extensões Linux em
aplicações, você precisaria usar as interfaces fáceis de
uso
capsetp(3) e
capgetp(3).
VALORES DE RETORNO¶
Em caso de sucesso, zero é retornado. Em caso de erro, -1 é retornado,
e
errno é selecionado apropriadamente.
ERROS¶
- EINVAL
- Um dos argumentos é inválido.
- EPERM
- Existiu uma tentativa de fazer adicionar uma habilidae para
conjuntos permitidos, ou para selecionar uma habilidade em conjuntos
efetivos ou hereditários que não no conjunto permitido.
A interface portável para interrogação e selecionamento de
funções é disponibilizada pela biblioteca
libcap que
esta disponibilizada a partir de:
ftp://linux.kernel.org/pub/linux/libs/security/linux-privs
TRADUZIDO POR LDP-BR em 21/08/2000.¶
André L. Fassone Canova <lonelywolf@blv.com.br> (tradução)
Fábio Henrique F. Silva <fabiohfs@mail.com> (revisão)