table of contents
other sections
GETGROUPS(2) | Linux-Programmierhandbuch | GETGROUPS(2) |
BEZEICHNUNG¶
getgroups, setgroups - abfragen/setzen von zusätzlichen Gruppen-IDsÜBERSICHT¶
#include <sys/types.h>Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):
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.)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.FEHLER¶
- EFAULT
- liste hat eine ungültige Adresse.
- EINVAL
- groesse ist kleiner als die Anzahl der zusätzlichen Gruppen-IDs, aber nicht Null.
- EINVAL
- groesse ist größer als NGROUPS_MAX (32 vor Linux 2.6.4; 65536 seit Linux 2.6.4).
- ENOMEM
- Platz im Hauptspeicher reicht nicht aus
- EPERM
- Der aufrufende Prozess hat unzureichende Privilegien.
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¶
Ein Prozess kann bis zu NGROUPS_MAX zusätzliche Gruppen-IDs ergänzend zur effektiven Gruppen-ID haben. Die Zusammenstellung zusätzlicher Gruppen-IDs wird vom Elternprozess geerbt und über ein execve(2) aufbewahrt.long ngroups_max; ngroups_max = sysconf(_SC_NGROUPS_MAX);Der maximale Rückgabewert von getgroups() kann nicht größer als dieser Wert plus eins sein.
SIEHE AUCH¶
getgid(2), setgid(2), getgrouplist(3), initgroups(3), capabilities(7), credentials(7)KOLOPHON¶
Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux- man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler gemeldet werden können, finden sich unter 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.22. November 2010 | Linux |