Provided by: manpages-de-dev_4.13-4_all bug

BEZEICHNUNG

       setfsgid - Gruppenidentität für Dateisystemprüfungen setzen

ÜBERSICHT

       #include <sys/fsuid.h>

       int setfsgid(uid_t dsgid);

BESCHREIBUNG

       Unter Linux hat ein Prozess sowohl eine Dateisystemgruppenkennung als auch eine effektive Gruppenkennung.
       Die  (Linux-spezifische)  Dateisystemgruppenkennung  wird  für  die Berechtigungsprüfung beim Zugriff auf
       Dateisystemobjekte   verwandt,   während   die   effektive   Gruppenkennung   für   andere   Arten    von
       Berechtigungsprüfungen verwandt wird (siehe credentials(7)).

       Normalerweise  ist  der  Wert  der  Dateisystemgruppenkennung  des Prozesses identisch zu dem Wert seiner
       effektiven Gruppenkennung. Dies kommt daher, dass der Kernel auch die  Dateisystemgruppenkennung  zu  dem
       gleichen  Wert  der  effektiven  Gruppenkennung  ändert,  wenn  sich  die  effektive Gruppenkennung eines
       Prozesses  ändert.  Mittels  setfsgid()  kann  ein  Prozess  veranlassen,  dass  sich  der  Wert   seiner
       Dateisystemgruppenkennung  von  dem Wert seiner effektiven Gruppenkennung unterscheidet, womit dieser den
       Wert der Dateisystemgruppenkennung auf den in dsgid angegeben Wert ändert.

       setfsgid() wird nur erfolgreich sein, falls der Aufrufende der Superuser ist oder wenn dsgid entweder der
       realen Gruppenkennung des Aufrufenden, der effektiven  Gruppenkennung,  der  gesicherten  SGID  oder  der
       aktuellen Dateisystembenutzerkennung entspricht.

RÜCKGABEWERT

       Sowohl    im    Erfolgs-   wie   auch   im   Fehlerfall   liefert   dieser   Aufruf   die   vorhergehende
       Dateisystem-Gruppenkennung des Aufrufenden zurück.

VERSIONEN

       Dieser Systemaufruf ist in Linux seit Version 1.2 vorhanden.

KONFORM ZU

       setfsgid ist Linux-spezifisch und sollte nicht in portierbaren Programmen benutzt werden.

ANMERKUNGEN

       Das Konzept der  Dateisystemgruppenkennung  und  der  Systemaufruf  setfsgid()  wurden  aus  historischen
       Gründen,  die  auf  modernen Linux-Kerneln nicht mehr zutreffen, erfunden. Lesen Sie setfsuid(2) für eine
       Abhandlung, warum die Verwendung von sowohl setfsuid(2) als auch  setfsgid()  heutzutage  nicht  benötigt
       wird.

       Der  Original-Linux-Systemaufruf  setfsgid()  unterstützte nur 16-Bit-Gruppenkennungen. Nachfolgend fügte
       Linux 2.4 setfsgid32() hinzu, das 32-Bit-Kennungen unterstützte.  Die  Glibc-Wrapper-Funktion  setfsgid()
       stellt die Änderungen transparent über Kernel-Versionen hinweg bereit.

   Unterschiede C-Bibliothek/Kernel
       Wenn  der  Wrapper für diesen Systemaufruf unter Glibc 2.15 und älter feststellt, dass das Argument nicht
       ohne  Ganzzahlschnitt  an  den  Kernel  übergeben  werden  kann  (weil  der  Kernel  alt  ist  und  keine
       32-Bit-Gruppenkennungen   unterstützt),   wird  -1  zurückgegeben  und  errno  auf  EINVAL  gesetzt.  Der
       Systemaufruf unterbleibt.

FEHLER

       Es werden keine Anhaltspunkte für Fehler an den Aufrufenden zurückgegeben und die Tatsache,  dass  sowohl
       erfolgreiche  als auch nicht erfolgreiche Aufrufe den selben Wert zurückgeben, macht es unmöglich, direkt
       zu bestimmen, ob der Aufruf erfolgreich war oder fehlschlug. Stattdessen musste der  Aufrufende  auf  die
       Betrachtung  des  Rückgabewerts  eines  weiteren  Prozesses  wie  setfsgid(-1)  zurückgreifen  (der immer
       fehlschlägt), um zu bestimmen, ob ein vorheriger Aufruf von setfsgid() die Dateisystemgruppen-ID geändert
       hat. Zumindest sollte EPERM zurückgegeben werden, wenn der Aufruf fehlschlägt  (da  dem  Aufrufenden  die
       CAP_SETGID-Capability fehlt).

SIEHE AUCH

       kill(2), setfsuid(2), capabilities(7), credentials(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  Patrick  Rother  <krd@gulu.net>,  Chris  Leick
       <c.leick@vollbio.de>,     Helge     Kreutzmann     <debian@helgefjell.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                                              9. Mai 2019                                       SETFSGID(2)