getgroups

Autres langues

Langue: fr

Version: 18 juillet 2003 (openSuse - 09/10/07)

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 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. Seul le Super-User peut utiliser cette fonction.

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.
EPERM
Pour setgroups, l'utilisateur n'est pas le Super-User.
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.

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 obtenus 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 (soit explicitement, soit implicitement en ne définissant pas _POSIX_SOURCE ou en compilant avec l'option -ansi).

CONFORMITÉ

SVr4, SVID (version 4 uniquement), X/OPEN, 4.3BSD. getgroups est conforme a POSIX.1 (et présent dans BSD 4.3). Comme setgroups nécessite des privilèges, il n'est pas couvert par POSIX.1.

VOIR AUSSI

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

TRADUCTION

Christophe Blaess, 1996-2003.