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>.