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)