Provided by: manpages-nl-dev_4.15.0-9_all bug

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);

   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 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.13  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⟩.