Linux x86_64Segurança#125
capget
Consulta as capabilities (permissões granulares de superusuário) de uma thread.
Descrição
Lê os conjuntos de capabilities permitidas, efetivas e herdáveis de uma thread, parte do modelo POSIX capabilities que decompõe os privilégios do root em unidades independentes (ex.: CAP_NET_ADMIN, CAP_SYS_TIME) em vez de um tudo-ou-nada.
Header:
linux/capability.hman 2Nota
Raramente usada diretamente — a biblioteca libcap oferece uma API de mais alto nível (`cap_get_proc(3)`, etc.).
Assinatura
int capget(cap_user_header_t hdrp, cap_user_data_t datap);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| hdrp | cap_user_header_t | Versão da API de capabilities e PID alvo (0 = chamador). |
| datap | cap_user_data_t | Recebe os conjuntos de capabilities (effective/permitted/inheritable). |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | hdrpcap_user_header_t |
| rsi | argumento 2 | datapcap_user_data_t |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EFAULT(14)
- Endereço de memória inválido (ponteiro fora do espaço de endereçamento válido).
- EINVAL(22)
- Argumento inválido.
- EPERM(1)
- Operação não permitida (falta de privilégio).