Provided by: manpages-pt-dev_20040726-4_all bug

NOME

       setuid - selecionar a identidade do usuário

SINOPSE

       #include <sys/types.h>
       #include <unistd.h>

       int setuid(uid_t uid)

DESCRIÇÃO

       setuid  seleciona  a  ID  efetiva  de  usuário do processo atual.  Se a ID efetiva do usuário do processo
       solicitante é root, as ID´s efetivas e guardas serão também selecionadas.

       No Linux, setuid é implementado como a versão POSIX com a característica _POSIX_SAVED_IDS.  Isto  permite
       um  programa  setuid  (exceto root) para deixar todos deste privilérios de usuário, para alguns trabalhos
       desprivilegiados, e então reusa a ID de usuário efetiva original em um modo seguro.

       Se o usuário é o superusuário ou o programa setuid root, cuidados especiais devem ser tomados.  A  função
       setuid verefica a uid efetiva do solicitante e se ele é o superusuário, todo processo com a ID do usuário
       serão selecionadas para uid.  Deposi disto ter ocorrido,  é  impossível  para  o  programa  recuperar  os
       privilégios de superusuário.

       Assim, um programa setuid root desejando, temporariamente, deixa os privilégios de superusuário, assume a
       identidade de um usuário sem ser o superusuário, e então recupera  os  privilégios  de  superusuário  mas
       tarde sem poder usar setuid.  Você pode completar esta com a chamada (BSD, e não a POSIX) seteuid.

VALORES RETORNADOS

       Em  caso  de  sucesso,  zero  é  retornado.  Caso  contrário,  -1  é  retornado,  e  errno  é selecionado
       apropriadamente.

ERROS

       EPERM  O usuário não é o superusuário, e uid não casa a ID de usuário efetiva  ou  guardada  do  processo
              solicitante.

DE ACORDO COM

       SVr4,  SVID,  POSIX.1.  Não totalmente compatível com a chamada BSD 4.4, a qual seleciona todas as IDs de
       usuário real, guardada, e efetiva. SVr4 documenta uma condição de erro adicional EINVAL.

ADVERTÊNCIA ESPEÍFICA PARA O LINUX

       O Linux tem o conceito de ID de usuário do sistema  de  arquivos,  normalmente  igual  a  ID  efetiva  de
       usuário.  A  chamada setuid também seleciona a ID de usuário do sistema de arquivos do processo corrente.
       Veja setfsuid(2).

       Se uid é diferente de velhas uid efetivas, o processo irá ser proíbido de saídas core dumps.

VEJA TAMBÉM

       getuid(2), setreuid(2), seteuid(2), setfsuid(2)

TRADUZIDO POR LDP-BR em 21/08/2000.

       André L. Fassone Canova <lonelywolf@blv.com.br> (tradução) xxxxxxxxxxxxxxxxxxxxxxxxx  <xxx@xxxxxx.xxx.xx>
       (revisão)