Provided by: manpages-de-dev_4.13-4_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  in
              seinem   Benutzernamensraum)   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  5.10  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 die
       Mailingliste der Übersetzer.

Linux                                             6. März 2019                                         SETGID(2)