Provided by:
manpages-es_1.55-10_all 
NOMBRE
setfsgid - establece la identidad del grupo que accede al sistema de
ficheros
SINOPSIS
#include <unistd.h> /* glibc usa <sys/fsuid.h> */
int setfsgid(uid_t fsgid);
DESCRIPCI'ON
La llamada al sistema setfsgid establece el identificador de grupo que
el nucleo de Linux usa para comprobar todos los accesos al sistema de
ficheros. Normalmente, el valor de fsgid cambiara segun el valor del
grupo efectivo. De hecho, cada vez que el grupo efectivo cambie, fsgid
tambien cambiara al nuevo valor del grupo efectivo.
Las llamadas explicitas a setfsuid y setgsgid normalmente solo se usan
en programas como el servidor NFS de Linux, que necesitan cambiar el
identificador de usuario y de grupo para acceder a un fichero, pero sin
cambiar los identificadores real y efectivo. Un cambio en el
identificador real del usuario para un programa como el servidor NFS
supondria un agujero de seguridad, al quedar expuesto a otras senales
no deseadas. (vease mas abajo.)
setfsgid solo tendra exito si quien lo invoca es el superusuario o si
fsgid coincide con el identificador de grupo real, con el identificador
de grupo efectivo, con el setgid guardado o con el valor actual de
fsgid.
VALOR DEVUELTO
En caso de exito, se devolvera el valor anterior de fsgid. En caso de
error, se devolvera el valor actual de fsgid.
CONFORME A
setfsgid es especifico de Linux y no deberia usarse en programas que se
pretende sean portables. Esta presente desde la version 1.1.44 de
Linux y en libc desde la version 4.7.6.
ERRORES
No se devuelve ningun mensaje de error a quien lo invoca. Al menos,
deberia devolverse EPERM cuando todas las llamadas fallen.
OBSERVACIONES
Cuando glibc determina que el argumento no es un ID de usuario valido,
devuelve -1 y pone en errno el valor EINVAL sin intentar la llamada al
sistema.
Observe que en la epoca en la que esta llamada al sistema fue
introducida, un proceso podia enviar una senal a un proceso con el
mismo ID de usuario efectivo. Hoy el manejo de los permisos sobre
senales es ligeramente diferente.
V'EASE TAMBI'EN
kill(2), setfsuid(2)