Provided by: manpages-nl-dev_4.21.0-2_all bug

NAAM

       getgroups, setgroups - krijg/zet een lijst van aanvullende groep ID's

BIBLIOTHEEK

       Standard C bibliotheek  (libc, -lc)

SAMENVATTING

       #include <unistd.h>

       int getgroups(int grootte, gid_t lijst[]);

       #include <grp.h>

       int setgroups(size_t grootte, const gid_t *_NULL_baarlijst);

   Feature Test Macro´s eisen in  glibc (zie feature_test_macros(7)):

       setgroups(2):
           Vanaf glibc 2.19:
               _DEFAULT_SOURCE
           Glibc 2.19 en eerder:
               _BSD_SOURCE

BESCHRIJVING

       getgroups()  geeft  de  aanvullende  groep  ID´s  van het aanroepende proces terug in lijst. Het argument
       grootte dient gezet te worden op het maximum aantal elementen dat kan  worden  opgeslagen  in  de  buffer
       aangewezen  door  lijst.  Als het aanroepende proces lid is van meer dan grootte aanvullende groepen, dat
       treedt een fout op.

       Het is niet gespecificeerd of het effectieve  groep  ID  van  het  aanroepende  proces  is  bevat  in  de
       geretourneerde  lijst.  (Dus,  aan  applicatie  moet  ook  getegid(2) aanroepen en de resulterende waarde
       verwijderen of toevoegen.

       Als grootte nul is dan wordt lijst niet veranderd, maar het gehele aantal van  aanvullende  groepen  voor
       hetproces wordt teruggegeven.

       setgroups()  zet  de  aanvullende  groepen  voor  een  proces. Alleen de super-gebruiker mag deze functie
       gebruiken.

           setgroups(0, NULL);

EIND WAARDE

       Bij success geeft getgroups() het aantal aanvullende groep ID's terug. Bij falen wordt  -1  teruggegeven,
       en errno wordt overeenkomstig gezet.

       Bij  success  geeft setgroups() nul terug. Bij falen wordt -1 teruggegeven, en wordt errno overeenkomstig
       gezet.

FOUTEN

       EFAULT lijst heeft een ongeldig adres.

       getgroups()  kan ook nog falen met de volgende fout:

       EINVAL grootte is kleiner dan het aantal aanvullende groep ID's, maar is niet nul.

       getgroups()  kan ook nog falen met de volgende fout:

       EINVAL grootte is groter dan NGROUPS_MAX (32 voor Linux 2.6.4; 65536 sinds Linux 2.6.4).

       ENOMEM Geen geheugen meer.

       EPERM  Het aanroepende proces heeft onvoldoende rechten (De aanroeper heeft niet de CAP_SETGID capaciteit
              in de gebruiker naamruimte waarin het zich bevind.

       EPERM (sinds Linux 3.19)
              Het gebruik van setgroups() wordt geweigerd in deze gebruiker naamruimte. Zie de beschrijving  van
              /proc/pid/setgroups in user_namespaces(7).

VOLDOET AAN

       getgroups(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008.

       setgroups(): SVr4, 4.3BSD.  Omdat setgroups()  een privilege vereist, is deze niet beschreven in POSIX.1.

OPMERKINGEN

       Een  proces  kan  tot  NGROUPS_MAX   aanvullende  groep  ID´s hebben boven op het effectieve groep ID. De
       constante NGROUPS_MAX is gedefinieerd in <limits.h>. De verzameling  van  aanvullende  groep  ID´s  wordt
       geërfd van het ouder proces en blijft bewaard langs een execve(2).

       Het maximum aantal aanvullende groep ID´s kan worden gevonden tijdens het uitvoeren door gebruik te maken
       van sysconf(3):

           long ngroups_max;
           ngroups_max = sysconf(_SC_NGROUPS_MAX);

       De maximale uitvoer waarde van getgroups() kan niet groter zijn dan een meer dan deze waarde. Vanaf Linux
       2.6.4,  is  het maximum aantal aanvullende groep ID´s ook zichtbaar via het Linux specifieke alleen-lezen
       bestand /proc/sys/kernel/ngroups_max.

       De originele Linux getgroups()  systeem aanroep ondersteunde alleen 16-bit groep ID´s. Vervolgens  voegde
       Linux  2.4  getgroups32()  toe, die 32-bit groep ID´s ondersteunde. De glibc getgroups() omwikkel functie
       handelt de verschillen tussen kernel variaties transparant af.

   C library/kernel verschillen
       Op kernel niveau, zijn gebruiker ID´s en groep ID´s een per-thread attribute. Hoewel  POSIX  vereist  dat
       alle threads in een proces dezelfde identificatie hebben. De NPTL threading implementaties voldoen aan de
       POSIX eis door omwikkel functies voor de verschillende systeem aanroepen die de UID´s en GID´s veranderen
       te  implementeren.  Deze  omwikkel functies (inclusief die voor setgroups()) gebruiken een op een signaal
       gebaseerde techniek om te verzekeren dat wanneer in een thread de identificatie  verandert,  alle  andere
       threads in het proces ook hun identificatie veranderen. Voor details zie nptl(7).

ZIE OOK

       getgid(2), setgid(2), getgrouplist(3), group_member(3), initgroups(3), capabilities(7), credentials(7)

VERTALING

       De  Nederlandse  vertaling  van deze handleiding is geschreven door Jos Boersema <joshb@xs4all.nl>, Mario
       Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com>

       Deze vertaling is vrije documentatie; lees  de  GNU General Public License Version 3  of  later  over  de
       Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID.

       Indien  U  fouten  in  de  vertaling  van deze handleiding zou vinden, stuur een e-mail naar debian-l10n-
       dutch@lists.debian.org.

Linux man-pagina's 6.03                          5 februari 2023                                    getgroups(2)