Provided by: manpages-de-dev_2.5-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 (über die  Capability  CAP_SETGID  in  seinem  Benutzernamensraum
       verfügt), werden auch die reale und die gesicherte Gruppen-ID gesetzt.

       Unter   Linux   ist  setgid()  wie  die  POSIX-Version  mit  dem  _POSIX_SAVED_IDS-Merkmal
       implementiert. Das ermöglicht einem setgid-Programm, das nicht  vom  Superuser  aufgerufen
       wurde,  alle  seine  Gruppenprivilegien  abzugeben, einige nicht privilegierte Arbeiten zu
       erledigen und dann auf sichere Art und Weise weiter die ursprüngliche effektive Gruppen-ID
       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 Gruppen-ID 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 Gruppen-ID 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.15  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>.