setgid

Autres langues

Langue: es

Autres versions - même langue

Version: 29 julio 1994 (fedora - 25/11/07)

Section: 2 (Appels système)

NOMBRE

setgid - establece la identidad de grupo

SINOPSIS

#include <unistd.h>

int setgid(gid_t gid)

DESCRIPCIÓN

setgid establece el ID de grupo efectivo del proceso en curso. Si quien llama a la función es el súper-usuario, se ponen también las IDs de grupo real y salvado.

Bajo Linux, setgid está implementada como la versión POSIX con la característica _POSIX_SAVED_IDS. Esto permite que un programa SGID (distinto de root) renuncie a todos sus privilegios de grupos, haga algún trabajo no privilegiado, y luego recupere su ID de grupo efectivo original de una manera segura.

Si el usuario es root o si el programa es SGID a root, deben tomarse precauciones especiales. La función setgid comprueba el GID efectivo de quien la llama y si es el súper-usuario, todos los IDs relacionados con el proceso se ponen a gid. Después de esto, es imposible para el programa recuperar sus privilegios de root.

Así, un programa SGID a root que desea temporalmente renunciar a sus provilegios de root, asumir la identidad de un grupo no-root y luego recuperar sus privilegios de root no puede emplear setgid. Esto se puede hacer con la llamada (no POSIX, BSD) setegid.

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 gid no concuerda con el ID de grupo efectivo ni con el setgid salvado del proceso que llama a la función.

CONFORME A

SVr4, SVID.

VÉASE TAMBIÉN

getgid(2), setregid(2), setegid(2)