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 reels et sauves sont egalement fixes. Sous Linux setgid est implemente comme la version POSIX avec l'option _POSIX_SAVED_IDS. Ceci permet a un programme Set-GID (autre que root) d'abandonner tous ses privileges de groupe, d'effectuer des taches non-privilegiees, et de retrouver son GID effectif de maniere securisee. Si l'utilisateur est le Super-User, ou si le programme est Set-GID root, des precautions particulieres doivent etre prises. La fonction setgid verifie le GID effectif de l'appelant et si c'est le Super-User, tous les GID du processus sont mis a gid. une fois ceci effectue, il est impossible au programme de retrouver ses privileges de Super-User. Ainsi un programme Set-GID root desireux d'abandonner temporairement ses privileges, en prenant l'identite d'un programme de groupe non-root, puis de recuperer ses privileges par la suite ne doit pas utiliser setgid. On peut accomplir ceci en utilisant l'appel (non-POSIX, BSD) setegid.

VALEUR RENVOYEE
setgid renvoie 0 s'il reussit, ou -1 s'il echoue, 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 sauve du processus.

CONFORMITE
SVr4, SVID.

VOIR AUSSI
getgid(2), setregid(2), setegid(2)