Provided by: manpages-pt-dev_20040726-1_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)