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