Voltar à lista
Linux x86_64Usuários & permissões#117

setresuid

Define independentemente o UID real, efetivo e saved-set do processo.

Descrição

Interface mais completa e recomendada para trocas de privilégio precisas — evita as sutilezas de comportamento de `setuid`/`setreuid` em relação ao saved-set-UID.

man 2Desde o kernel 2.1.44

Assinatura

int setresuid(uid_t ruid, uid_t euid, uid_t suid);

Parâmetros

ParâmetroTipoDescrição
ruiduid_tNovo UID real, ou -1 para não alterar.
euiduid_tNovo UID efetivo, ou -1 para não alterar.
suiduid_tNovo UID saved-set, ou -1 para não alterar.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1ruiduid_t
rsiargumento 2euiduid_t
rdxargumento 3suiduid_t

Valor de retorno

0 em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EAGAIN(11)
Recurso temporariamente indisponível (tente novamente); também conhecido como EWOULDBLOCK.
EPERM(1)
Operação não permitida (falta de privilégio).

Relacionadas