bionic (2) setuid.2.gz

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ÓN

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

       Bajo Linux, setuid está implementado como la versión POSIX con la característica  _POSIX_SAVED_IDS.  Esto
       permite  que  un programa SUID (distinto de root) renuncie a todos sus privilegios de usuario, haga algún
       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  función
       setuid  comprueba  el UID efectivo de quien la llama y si es el súper-usuario, todos los IDs relacionados
       con el proceso se ponen a uid.  Después de esto, es imposible para el programa recuperar sus  privilegios
       de root.

       Así,  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  éxito,  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 súper-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 condición de error adicional, EINVAL.

OBSREVACIONES ESPECÍFICAS DE LINUX

       Linux posee el concepto de UID de sistema de ficheros, normalmente igual al UID efectivo.  La  llamada  a
       setuid también 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 prohibirá dejar volcados de memoria.

VÉASE TAMBIÉN

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