1. NOM

setgid - Définir l'identifiant de groupe

2. SYNOPSIS

#include <sys/types.h>
#include <unistd.h>

int setgid(gid_t gid);

3. DESCRIPTION

setgid() définit le GID effectif du processus appelant. Si l'appelant est le superutilisateur, les GID réel et sauvé sont également définis. 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.

4. VALEUR RENVOYÉE

S'il réussit, cet appel système renvoie 0. S'il échoue, il renvoie -1 et remplit errno en conséquence.

5. ERREURS

  • EPERM
        Le processus appelant n'est pas privilégié (ne possède pas la capacité CAP_SETGID) et gid ne correspond ni au GID réel, ni au GID sauvé du processus appelant.

6. CONFORMITÉ

SVr4, POSIX.1-2001.

7. NOTES

L'appel système setgid() original de Linux ne gérait que des identifiants de groupe sur 16 bits. En conséquence, Linux 2.4 a ajouté setgid32() qui prend en charge des identifiants 32 bits. La fonction setgid() de la glibc qui l'encapsule gère de manière transparente ces différences entre noyaux.

8. VOIR AUSSI

9. COLOPHON

Cette page fait partie de la publication 3.52 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

10. TRADUCTION

Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».