setfsgid

SETFSGID(2)                 Linux-Programmierhandbuch                SETFSGID(2)



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

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

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.13 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 ⟨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⟩.



Linux                             22. März 2021                      SETFSGID(2)