Provided by: manpages-es_1.55-10_all bug

NOMBRE

       setuid - establece la identidad del usuario

SINOPSIS

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

       int setuid(uid_t uid);

DESCRIPCI'ON

       setuid  establece  el  UID  efectivo  del  proceso en curso.  Si el UID
       efectivo de quien llama a esta rutina es root,  tambien  se  establecen
       los identificadores de usuario real y salvado.

       Bajo  Linux,  setuid  esta  implementado  como  la version POSIX con la
       caracteristica _POSIX_SAVED_IDS. Esto  permite  que  un  programa  SUID
       (distinto  de  root)  renuncie a todos sus privilegios de usuario, haga
       algun trabajo no privilegiado,  y  luego  recupere  su  ID  de  usuario
       efectivo original de una manera segura.

       Si  el  usuario  es root o si el programa es SUID a root, deben tomarse
       precauciones especiales. La funcion setuid comprueba el UID efectivo de
       quien la llama y si es el super-usuario, todos los IDs relacionados con
       el proceso se ponen a uid.  Despues  de  esto,  es  imposible  para  el
       programa recuperar sus privilegios de root.

       Asi,  un  programa  SUID a root que desea temporalmente renunciar a sus
       provilegios de root, asumir la identidad de un usuario no-root y  luego
       recuperar  sus  privilegios  de  root no puede emplear setuid.  Esto se
       puede hacer con la llamada (no POSIX, BSD) seteuid.

VALOR DEVUELTO

       En caso de exito, se devuelve cero. En caso de error, se devuelve -1, y
       se pone un valor apropiado en errno.

ERRORES

       EPERM   El usuario no es el super-usuario, y uid no concuerda con el ID
               de usuario real ni guardado del proceso invocador.

CONFORME A

       SVr4, SVID, POSIX.1.  No muy compatible con la llamada de  4.4BSD,  que
       establece  todos  los  IDs  de  usuario: real, salvado y efectivo. SVr4
       documenta una condicion de error adicional, EINVAL.

OBSREVACIONES ESPEC'IFICAS DE LINUX

       Linux posee el concepto de UID  de  sistema  de  ficheros,  normalmente
       igual  al UID efectivo. La llamada a setuid tambien establece el UID de
       sistema de ficheros del proceso en curso.  Vea setfsuid(2).

       Si uid es  diferente  del  uid  efectivo  antiguo,  al  proceso  se  le
       prohibira dejar volcados de memoria.

V'EASE TAMBI'EN

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