getgroups   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (2)
Updated: 3 juin 2008
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
getgroups, setgroups - Lire/écrire la liste des groupes supplémentaires d'un processus  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#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);

Exigences de macros de test de fonctionalités pour la glibc (voir feature_test_macros(7)) :

setgroups() : _BSD_SOURCE  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

getgroups() retourne les GID supplémentaires du processus appelant dans la liste list. L'argument size doit être défini au nombre maximum d'éléments pouvant être stockés dans le tampon pointé par list. Si le processus appelant est membre de plus de size groups supplémentaires, il en résultera une erreur.

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é. Cela permet à l'appelant de déterminer la taille de la liste list, dynamiquement allouée, à utiliser dans un appel ultérieur à getgroups().

setgroups() définit les GID supplémentaires pour le processus appelant. Les privilèges appropriés (sous Linux : la capacité CAP_SETGID) sont nécessaires. L'argument size indique le nombre de GID supplémentaires dans le tampon pointé par list.  




VALEUR RENVOYÉE   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
S'il réussit, getgroups() renvoie le nombre d'ID de groupes supplémentaires du processus. S'il échoue, -1 est renvoyé et errno contient le code d'erreur.

S'il réussit, setgroups() renvoie 0. S'il échoue, -1 est renvoyé et errno contient le code d'erreur.  




ERREURS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
EFAULT
list pointe en dehors de l'espace d'adressage accessible.

getgroups() peut échouer aussi avec l'erreur suivante :

EINVAL
size est inférieur au nombre d'ID de groupes supplémentaires, et n'est pas nul.

setgroups() peut échouer aussi avec les erreurs suivantes :

EINVAL
size est plus grand que NGROUPS (32 avant Linux 2.6.4 ; 65536 depuis Linux 2.6.4).
ENOMEM
Mémoire insuffisante.
EPERM
Le processus appelant n'a pas suffisamment de privilèges.
 



CONFORMITÉ   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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 est préservé à travers un execve(2).

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.  



VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
getgid(2), setgid(2), getgrouplist(3), initgroups(3), capabilities(7) credentials(7).  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

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 6 juin 2008.

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.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
NOTES
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
EFAULTERREURS
EINVALERREURS
ENOMEMERREURS
EPERMERREURS



Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:51:24, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional