Provided by: manpages-de-dev_2.16-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 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.03  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>.