Linux

CentOS 4.8

setgid(2)


SETGID

NOM

setgid − Fixer l’ID de groupe.

SYNOPSIS

#include <sys/types.h>
#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 également fixés.

Sous Linux setgid est implémenté comme la version POSIX avec l’option _POSIX_SAVED_IDS. Ceci permet à un programme 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 processus 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 temporairement 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 correspond 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.


setgid(2)