Linux x86_64Segurança#460
lsm_set_self_attr
Define um atributo de segurança do processo chamador em um LSM específico.
Descrição
Contraparte de escrita de `lsm_get_self_attr` — equivalente genérico a escrever em /proc/self/attr/current para trocar, por exemplo, o contexto SELinux de execução (transição de domínio).
man 2Desde o kernel 6.8
Assinatura
int lsm_set_self_attr(
unsigned int attr,
struct lsm_ctx * ctx,
size_t size,
__u32 flags
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| attr | unsigned int | Atributo a definir. |
| ctx | struct lsm_ctx * | Novo valor do atributo. |
| size | size_t | Tamanho de `ctx`. |
| flags | __u32 | Reservado; deve ser 0. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | attrunsigned int |
| rsi | argumento 2 | ctxstruct lsm_ctx * |
| rdx | argumento 3 | sizesize_t |
| r10 | argumento 4 | flags__u32 |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EINVAL(22)
- Argumento inválido.
- EOPNOTSUPP(95)
- Operação não suportada nesse socket/arquivo (também ENOTSUP).
- EPERM(1)
- Operação não permitida (falta de privilégio).
- EFAULT(14)
- Endereço de memória inválido (ponteiro fora do espaço de endereçamento válido).