focal (2) setfsgid.2.gz

Provided by: manpages-de-dev_2.16-1_all bug

BEZEICHNUNG

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

ÜBERSICHT

       #include <sys/fsuid.h>

       int setfsgid(uid_t fsgid);

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 fsgid angegeben Wert ändert.

       setfsgid() wird nur erfolgreich sein, falls der Aufrufende der Superuser ist oder wenn fsgid 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.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  Patrick  Rother  <krd@gulu.net>,  Chris  Leick
       <c.leick@vollbio.de> und Helge Kreutzmann <debian@helgefjell.de> 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>.