Provided by: manpages-de-dev_2.14-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 Dateisystembenutzerkennung des Aufrufenden
       – der Benutzerkennung, die der Linux-Kernel zum Prüfen aller Zugriffe auf das  Dateisystem
       benutzt.  Normalerweise  stimmt  der  Wert  der  Benutzerkennung  des Dateisystems mit der
       effektiven  Benutzerkennung  überein.  Jedenfalls   wird   immer,   wenn   die   effektive
       Benutzerkennung  geändert  wird,  auch  die Benutzerkennung des Dateisystems auf den neuen
       Wert der effektiven Benutzerkennung 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
       Gruppenkennung ändern, ohne die  reale  oder  effektive  Gruppenkennung  zu  ändern.  Eine
       Änderung  der  normalen  Benutzerkennungen  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  Benutzerkennung,  der  gesicherten  SUID  oder  der
       aktuellen Dateisystembenutzerkennung entspricht.

RÜCKGABEWERT

       Sowohl   im   Fehler-   als   auch   im  Erfolgsfall  wird  dieser  Aufruf  die  vorherige
       Dateisystembenutzerkennung 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 Benutzerkennung senden. Dies bedeutete, dass ein
       privilegierter Prozess, falls er  zum  Prüfen  von  Dateizugriffsrechten  seine  effektive
       Benutzerkennung  änderte,  in  die  Lage  versetzt wurde, Signale von einem anderen (nicht
       privilegierten)  Prozess  mit  der  selben  Kennung  zu   empfangen.   Daher   wurde   das
       Benutzerkennungsatttribut des Dateisystems hinzugefügt, um einem Prozess das Ändern seiner
       Benutzerkennung 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  Benutzerkennung  ä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-Benutzerkennungen.
       Nachfolgend fügte Linux 2.4 setfsuid32() hinzu,  das  32-Bit-Kennungen  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-Benutzerkennungen 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 Dateisystembenutzerkennung 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.16  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>,
       Helge Kreutzmann <debian@helgefjell.de> und Chris Leick <c.leick@vollbio.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>.