SETGID(2) Manuel du programmeur Linux SETGID(2)
NOM
setgid - Fixer l'ID de groupe.
SYNOPSIS
#include <unistd.h>
int setgid(gid_t gid)
DESCRIPTION
setgid fixe le GID effectif du processus en cours. Si
l'appelant est le Super-User, les GID réels et sauvés sont
egalement fixés.
Sous Linux setgid est implementé comme la version POSIX
avec l'option _POSIX_SAVED_IDS. Ceci permet à un pro
gramme Set-GID (autre que root) d'abandonner tous ses
privilèges de groupe, d'effectuer des tâches
non-privilégiées, et de retrouver son GID effectif de
manière sécurisée.
Si l'utilisateur est le Super-User, ou si le programme est
Set-GID root, des précautions particulières doivent être
prises. La fonction setgid vérifie le GID effectif de
l'appelant et si c'est le Super-User, tous les GID du pro
cessus sont mis à gid. une fois ceci effectué, il est
impossible au programme de retrouver ses privilèges de
Super-User.
Ainsi un programme Set-GID root désireux d'abandonner tem
porairement ses privilèges, en prenant l'identité d'un
programme de groupe non-root, puis de récupèrer ses
privilèges par la suite ne doit pas utiliser setgid. On
peut accomplir ceci en utilisant l'appel (non-POSIX, BSD)
setegid.
VALEUR RENVOYÉE
setgid renvoie 0 s'il réussit, ou -1 s'il échoue, auquel
cas errno contient le code d'erreur.
ERREURS
EPERM L'utilisateur n'est pas Super-User et gid ne cor
respond ni au GID effectif, ni au GID sauvé du
processus.
CONFORMITÉ
SVr4, SVID.
VOIR AUSSI
getgid(2), setregid(2), setegid(2)
TRADUCTION
Christophe Blaess, 1997.
Linux 8 Avril 1997 1