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)