Linux x86_64Segurança#250
keyctl
Ponto de entrada multiplexado para dezenas de operações sobre chaves e keyrings do kernel.
Descrição
Como `ioctl`/`prctl`, é uma única syscall cujo comportamento é selecionado pelo primeiro argumento — permite ler, atualizar, vincular, revogar, invalidar e ajustar permissões de chaves e keyrings, entre muitas outras operações.
Header:
keyutils.hman 2Desde o kernel 2.6.10Assinatura
long keyctl(
int operation,
unsigned long arg2,
unsigned long arg3,
unsigned long arg4,
unsigned long arg5
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| operation | int | Comando: KEYCTL_GET_KEYRING_ID, KEYCTL_READ, KEYCTL_REVOKE, KEYCTL_SETPERM, etc. |
| arg2 | unsigned long | Argumento cujo significado depende de `operation`. |
| arg3 | unsigned long | Argumento cujo significado depende de `operation`. |
| arg4 | unsigned long | Argumento cujo significado depende de `operation`. |
| arg5 | unsigned long | Argumento cujo significado depende de `operation`. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | operationint |
| rsi | argumento 2 | arg2unsigned long |
| rdx | argumento 3 | arg3unsigned long |
| r10 | argumento 4 | arg4unsigned long |
| r8 | argumento 5 | arg5unsigned long |
Valor de retorno
Depende de `operation`; em geral, um valor não negativo em sucesso e -1 em erro, com errno definido.
Códigos de erro (errno)
- EACCES(13)
- Permissão negada.
- EINVAL(22)
- Argumento inválido.
- ENOKEY(126)
- Chave (keyring) requerida não disponível.
- EPERM(1)
- Operação não permitida (falta de privilégio).