setgroups

GETGROUPS(2)             Linux Programmeurs Handleiding             GETGROUPS(2)



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

SAMENVATTING
       #include <unistd.h>

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

       #include <grp.h>

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

   Test Macro´s 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 gewijgerd 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)

COLOFON
       Deze pagina is onderdeel van release 5.11 van het Linux
       man-pages-project. Een beschrijving van het project, informatie over het
       melden van bugs en de nieuwste versie van deze pagina zijn op
       https://www.kernel.org/doc/man-pages/ te vinden.


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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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                             22 maart 2021                     GETGROUPS(2)