Linux x86_64Segurança#459
lsm_get_self_attr
Consulta atributos de segurança do processo chamador expostos pelos Linux Security Modules (LSM) ativos.
Descrição
Interface genérica que substitui a leitura ad-hoc de arquivos em /proc/self/attr/ para obter atributos como o contexto SELinux, o perfil AppArmor ou rótulos Smack do processo atual, de forma uniforme entre os LSMs habilitados.
man 2Desde o kernel 6.8
Assinatura
int lsm_get_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 desejado (ex.: LSM_ATTR_CURRENT). |
| ctx | struct lsm_ctx * | Buffer de saída para o(s) atributo(s) encontrado(s). |
| size | size_t * | Tamanho do buffer `ctx`; atualizado com o tamanho necessário/usado. |
| 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
Número de atributos retornados em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- E2BIG(7)
- Lista de argumentos grande demais.
- EINVAL(22)
- Argumento inválido.
- EOPNOTSUPP(95)
- Operação não suportada nesse socket/arquivo (também ENOTSUP).
- EFAULT(14)
- Endereço de memória inválido (ponteiro fora do espaço de endereçamento válido).