Provided by: manpages-de-dev_1.4-1_all bug

BEZEICHNUNG

       getgroups, setgroups - abfragen/setzen von zusätzlichen Gruppen-IDs

ÜBERSICHT

       #include <sys/types.h>
       #include <unistd.h>

       int getgroups(int groesse, gid_t liste[]);

       #include <grp.h>

       int setgroups(size_t groesse, const gid_t *liste);

   Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):

       setgroups(): _BSD_SOURCE

BESCHREIBUNG

       getgroups()  gibt  die zusätzlichen Gruppen-IDs des aufrufenden Prozesses in liste zurück.
       Das Argument groesse sollte auf die maximale Anzahl der Elemente gesetzt  werden,  die  in
       dem  Puffer  gespeichert  werden können, auf den liste zeigt. Falls der aufrufende Prozess
       Mitglied von mehr als groesse Gruppen ist, dann führt dies zu einem Fehler. Es  ist  nicht
       beschrieben,  ob die effektive Gruppen-ID des aufrufenden Prozesses in der zurückgegebenen
       Liste enthalten ist. (Daher  sollte  eine  Anwendung  auch  getegid(2)  aufrufen  und  den
       resultierenden Wert hinzufügen oder entfernen.)

       Wenn  groesse  Null  ist,  wird  liste  nicht  verändert,  es wird aber die Gesamtzahl der
       zusätzlichen Gruppen-IDs für den Prozess zurückgegeben. Dies erlaubt es  dem  Aufrufenden,
       die Größe einer dynamisch reservierten liste festzulegen, die in einem weiteren Aufruf von
       getgroups() benutzt wird.

       setgroups() setzt die zusätzlichen Gruppen-IDs für  den  aufrufenden  Prozess.  Es  werden
       geeignete  Privilegien  benötigt  (Linux;  die Fähigkeit CAP_SETGID). Das Argument groesse
       gibt die Anzahl der zusätzlichen Gruppen-IDs im Puffer an, auf den liste zeigt.

RÜCKGABEWERT

       Bei  Erfolg  gibt  getgroups()  die  Anzahl  der  zusätzlichen  Gruppen-IDs  zurück.   Bei
       aufgetretenem Fehler wird -1 geliefert und errno wird entsprechend gesetzt.

       Bei Erfolg gibt setgroups() 0 zurück. Bei aufgetretenem Fehler wird -1 geliefert und errno
       wird entsprechend gesetzt.

FEHLER

       EFAULT liste hat eine ungültige Adresse.

       getgroups() kann außerdem mit dem folgenden Fehler fehlschlagen:

       EINVAL groesse ist kleiner als die Anzahl der zusätzlichen Gruppen-IDs, aber nicht Null.

       setgroups() kann überdies mit den folgenden Fehlern fehlschlagen:

       EINVAL groesse ist größer als NGROUPS_MAX (32 vor Linux 2.6.4; 65536 seit Linux 2.6.4).

       ENOMEM Speicher aufgebraucht.

       EPERM  Der aufrufende Prozess hat unzureichende Rechte.

KONFORM ZU

       SVr4, 4.3BSD. Die Funktion getgroups() ist in  POSIX.1-2001  enthalten.  Seit  setgroups()
       Privilegien benötigt, ist es nicht durch POSIX.1-2001 abgedeckt.

ANMERKUNGEN

       A  process can have up to NGROUPS_MAX supplementary group IDs in addition to the effective
       group ID. The set of supplementary group IDs is inherited from  the  parent  process,  and
       preserved across an execve(2).

       The maximum number of supplementary group IDs can be found using sysconf(3):

           long ngroups_max;
           ngroups_max = sysconf(_SC_NGROUPS_MAX);

       The maximum return value of getgroups()  cannot be larger than one more than this value.

       Der   Original-Linux-Systemaufruf   getgroups()   unterstützte   nur   16-Bit-Gruppen-IDs.
       Nachfolgend  fügte  Linux  2.4  getgroups32()  hinzu,  das  32-Bit-IDs  unterstützte.  Die
       Glibc-Wrapper-Funktion getgroups() stellt die Änderungen transparent über Kernel-Versionen
       hinweg bereit.

SIEHE AUCH

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

KOLOPHON

       This page is part of release 3.54 of the Linux man-pages project.  A  description  of  the
       project,     and    information    about    reporting    bugs,    can    be    found    at
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde  von  René  Tschirley  <gremlin@cs.tu-
       berlin.de>,  Martin  Schulze  <joey@infodrom.org>  und  Chris  Leick  <c.leick@vollbio.de>
       erstellt.

       Diese Übersetzung ist Freie Dokumentation;  lesen  Sie  die  GNU  General  Public  License
       Version   3  oder  neuer  bezüglich  der  Copyright-Bedingungen.  Es  wird  KEINE  HAFTUNG
       übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an <debian-l10n-german@lists.debian.org>.