Provided by: manpages-de-dev_2.14-1_all bug

BEZEICHNUNG

       setgid - setzt die Gruppenidentität (GID)

ÜBERSICHT

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

       int setgid(gid_t gid);

BESCHREIBUNG

       setgid()  setzt  die  effektive Gruppen-ID des aufrufenden Prozesses. Falls der aufrufende
       Prozess  privilegiert  ist  (genauer:   über   die   Capability   CAP_SETGID   in   seinem
       Benutzernamensraum  verfügt),  werden  auch  die  reale  und die gespeicherte set-group-ID
       gesetzt.

       Unter  Linux  ist  setgid()  wie  die  POSIX-Version  mit   dem   _POSIX_SAVED_IDS-Merkmal
       implementiert. Das ermöglicht einem set-group-ID-Programm, das nicht set-user-ID-root ist,
       alle seine Gruppenprivilegien abzugeben, einige nicht privilegierte Arbeiten zu  erledigen
       und  dann  auf  sichere Art und Weise weiter die ursprüngliche effektive Gruppenkennung zu
       nutzen.

RÜCKGABEWERT

       Bei Erfolg wird Null zurückgegeben. Bei einem  Fehler  wird  -1  zurückgegeben  und  errno
       entsprechend gesetzt.

FEHLER

       EINVAL Die in gid angegebene Gruppenkennung ist in diesem Benutzer-Namensraum unzulässig.

       EPERM  Der   aufrufende   Prozess   ist   nicht   privilegiert  (verfügt  nicht  über  die
              CAP_SETGID-Capability) und gid entspricht nicht der realen Gruppenkennung oder  der
              gespeicherten set-group-ID des aufrufenden Prozesses.

KONFORM ZU

       POSIX.1-2001, POSIX.1-2008, SVr4.

ANMERKUNGEN

       Der ursprüngliche setgid()-Systemaufruf unterstützte nur 16-Bit-Gruppen-IDs. Danach führte
       Linux 2.4 mit setgid32() die Unterstützung für 32-Bit-IDs hinzu. Die Glibc-Wrapperfunktion
       setgid() behandelt die Unterschiede zwischen den Kernel-Versionen transparent.

   Unterschiede C-Bibliothek/Kernel
       Auf  der  Kernelebene  sind  Benutzer-  und  Gruppenkennungen  Attribute pro Thread. POSIX
       verlangt aber, dass sich alle Threads in einem Prozess die gleichen Berechtigungsnachweise
       teilen.   Die   NPTL-Threading-Implementierung  behandelt  die  POSIX-Anforderungen  durch
       Bereitstellung von Wrapper-Funktionen für die verschiedenen Systemaufrufe,  die  die  UIDs
       und  GIDs  der  Prozesse  ändern.  Diese  Wrapper-Funktionen  (darunter  die für setgid())
       verwenden eine signalbasierte Technik, um  sicherzustellen,  dass  bei  der  Änderung  der
       Berechtigungsnachweise  eines  Threads  auch  alle  anderen  Threads  des  Prozesses  ihre
       Berechtigungsnachweise ändern. Für Details siehe nptl(7).

SIEHE AUCH

       getgid(2), setegid(2), setregid(2), capabilities(7), credentials(7), user_namespaces(7)

KOLOPHON

       Diese Seite  ist  Teil  der  Veröffentlichung  4.16  des  Projekts  Linux-man-pages.  Eine
       Beschreibung  des  Projekts,  Informationen,  wie  Fehler gemeldet werden können sowie die
       aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die   deutsche   Übersetzung    dieser    Handbuchseite    wurde    von    Stefan    Janke
       <gonzo@burg.studfb.unibw-muenchen.de>,  Martin  Eberhard Schauer <Martin.E.Schauer@gmx.de>
       und Mario Blättermann <mario.blaettermann@gmail.com> 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>.