getgroups

Autres langues

Langue: fr

Version: 27 mai 2004 (mandriva - 01/05/08)

Section: 2 (Appels système)

NOM

getgroups, setgroups - Lire/écrire la liste des groupes supplémentaires d'un processus

SYNOPSIS

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

int getgroups(int size, gid_t list[]);

#include <grp.h>

int setgroups(size_t size, const gid_t *list);

DESCRIPTION

getgroups()
retourne une liste list contenant jusqu'à size ID (du processus appelant) de groupes additionnels. Le groupe effectif du processus appelant peut être inclus ou non dans la liste (ainsi une application devrait également appeler getegid(2) et ajouter ou supprimer la valeur résultante). Si size vaut zéro, list n'est pas modifiée, mais le nombre total de groupes supplémentaires pour le processus est renvoyé.
setgroups()
fixe des ID groupes supplémentaires pour le processus. Les privilèges appropriés (sous Linux : la capacité CAP_SETGID) sont nécessaires.

VALEUR RENVOYÉE

getgroups()
renvoie le nombre d'ID de groupes supplémentaires du processus s'il réussit, ou -1 s'il échoue, auquel cas errno contient le code d'erreur.
setgroups()
renvoie 0 s'il réussit, ou -1 s'il échoue, auquel cas errno contient le code d'erreur.

ERREURS

EFAULT
list pointe en dehors de l'espace d'adressage accessible.
EINVAL
Pour setgroups(), size est plus grand que NGROUPS (32 avec Linux 2.0.32). Pour getgroups(), size est inférieur au nombre d'ID de groupes supplémentaires, et n'est pas nul.
EPERM
Le processus appelant n'a pas suffisamment de privilèges pour appeler setgroups().

CONFORMITÉ

SVr4, BSD 4.3. getgroups() est conforme à POSIX.1-2001. Comme setgroups() nécessite des privilèges, il n'est pas couvert par POSIX.1-2001.

NOTES

Un processus peut avoir jusqu'à NGROUPS_MAX ID de groupes supplémentaires en plus de son ID de groupe effectif. Le jeu d'ID de groupes supplémentaires est hérité du processus parent, et peut être modifié avec setgroups(). Le nombre maximal d'ID de groupes supplémentaires peut être obtenu avec sysconf(3) :
 
     long ngroups_max;
     ngroups_max = sysconf(_SC_NGROUPS_MAX);
 
 
La valeur de retour maximale de getgroups() ne peut pas être plus grande que 1 plus la valeur ainsi obtenue.

Le prototype de setgroups() n'est disponible que si _BSD_SOURCE est définie.

VOIR AUSSI

getgid(2), setgid(2), initgroups(3), capabilities(7)

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 10 octobre 1996 et révisée le 28 novembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 getgroups ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.