bionic (2) setfsuid.2.gz

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

BEZEICHNUNG

       setfsuid - Benutzeridentität für Dateisystemprüfungen setzen

ÜBERSICHT

       #include <sys/fsuid.h>

       int setfsuid(uid_t fsuid);

BESCHREIBUNG

       Der Systemaufruf setfsuid() ändert den Wert der Dateisystembenutzer-ID des Aufrufenden – der Benutzer-ID,
       die der Linux-Kernel zum Prüfen aller Zugriffe auf das Dateisystem benutzt. Normalerweise stimmt der Wert
       der  Benutzer-ID des Dateisystems mit der effektiven Benutzer-ID überein. Jedenfalls wird immer, wenn die
       effektive Benutzer-ID geändert wird, auch die  Benutzer-ID  des  Dateisystems  auf  den  neuen  Wert  der
       effektiven Benutzer-ID geändert.

       Explizite  Aufrufe  von  setfsuid()  und  setfsgid(2)  werden  gewöhnlich  nur  von  Programmen  wie  dem
       Linux-NFS-Server benutzt. Sie müssen die für Dateizugriffe verwendete Benutzer-  und  Gruppen-ID  ändern,
       ohne  die  reale  oder  effektive  Gruppen-ID  zu  ändern.  Eine  Änderung  der normalen Benutzer-IDs bei
       Programmen wie dem NFS-Server ist eine Sicherheitslücke, die es unerwünschten  Signalen  aussetzen  kann.
       (Aber lesen Sie Nachstehendes.)

       setfsuid()  wird nur erfolgreich sein, wenn der Aufrufende der Superuser ist oder wenn fsuid entweder der
       realen,  effektiven  Benutzer-ID,  der  gesicherten  SUID  oder  der   aktuellen   Dateisystembenutzer-ID
       entspricht.

RÜCKGABEWERT

       Sowohl  im  Fehler-  als  auch im Erfolgsfall wird dieser Aufruf die vorherige Dateisystembenutzer-ID des
       Aufrufenden zurückliefern.

VERSIONEN

       Dieser Systemaufruf ist in Linux seit Version 1.2 vorhanden.

KONFORM ZU

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

ANMERKUNGEN

       Zum Zeitpunkt, an dem dieser Systemaufruf erfolgte, konnte  ein  Prozess  ein  Signal  an  einen  anderen
       Prozess  mit  der  selben effektiven Benutzer-ID senden. Dies bedeutete, dass ein privilegierter Prozess,
       falls er zum Prüfen von Dateizugriffsrechten seine effektive Benutzer-ID änderte, in  die  Lage  versetzt
       wurde,  Signale  von  einem  anderen (nicht privilegierten) Prozess mit der selben ID zu empfangen. Daher
       wurde das  Benutzer-ID-Attribut  des  Dateisystems  hinzugefügt,  um  einem  Prozess  das  Ändern  seiner
       Benutzer-ID zum Prüfen der Dateizugriffsrechte zu ermöglichen, ohne gleichzeitig sensibel für den Empfang
       unerwünschter Signale zu werden. Seit Linux 2.0 ist der Umgang mit  Signalrechten  anders  gelöst  (siehe
       kill(2)),  was dazu führt, dass ein Prozess seine effektive Benutzer-ID ändern kann, ohne empfänglich für
       Signale von unerwünschten Prozessen zu werden. Daher wird setfsuid() heutzutage nicht mehr  benötigt  und
       sollte in neuen Anwendungen vermieden werden (ebenso setfsgid(2)).

       Der  Original-Linux-Systemaufruf setfsuid() unterstützte nur 16-Bit-Benutzer-IDs. Nachfolgend fügte Linux
       2.4 setfsuid32() hinzu, das 32-Bit-IDs unterstützte. Die  Glibc-Wrapper-Funktion  setfsuid()  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-Benutzer-IDs  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  setfsuid(-1)  zurückgreifen  (der immer
       fehlschlägt), um zu bestimmen,  ob  ein  vorheriger  Aufruf  von  setfsuid()  die  Dateisystembenutzer-ID
       geändert  hat.  Zumindest  sollte  EPERM  zurückgegeben  werden,  wenn  der  Aufruf  fehlschlägt  (da dem
       Aufrufenden die CAP_SETUID-Capability fehlt).

SIEHE AUCH

       kill(2), setfsgid(2), capabilities(7), credentials(7)

KOLOPHON

       Diese Seite ist Teil der Veröffentlichung  4.15  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>.