Provided by: manpages-de-dev_4.21.0-2_all bug

BEZEICHNUNG

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

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

ÜBERSICHT

       #include <sys/fsuid.h>

       int setfsgid(gid_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.

STANDARDS

       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)

Ü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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 ⟨debian-l10n-german@lists.debian.org⟩.