Provided by: manpages-de-dev_1.11-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

       Wenn Glibc feststellt, dass das Argument keine gültige Benutzer-ID ist, wird -1 zurückgegeben  und  errno
       auf EINVAL gesetzt. Der Systemaufruf unterbleibt.

       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.

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.04  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 http://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>.

Linux                                            8. August 2013                                      SETFSUID(2)