Provided by: manpages-de-dev_1.4-1_all bug

BEZEICHNUNG

       setuid - Benutzeridentität setzen

ÜBERSICHT

       #include <sys/types.h>
       #include <unistd.h>

       int setuid(uid_t uid);

BESCHREIBUNG

       setuid()  setzt  die  effektive Benutzer-ID des aufrufenden Prozesses. Wird diese Funktion
       durch Root aufgerufen, so wird die reale und die gesicherte ID auch gesetzt.

       Unter  Linux  ist  setuid()  wie  die  POSIX-Version  mit  dem  Merkmal   _POSIX_SAVED_IDS
       implementiert.   Damit   kann  ein  (von  root  verschiedenes)  setuid-Programm  sämtliche
       Privilegien abgeben, unprivilegierte Arbeiten verrichten und anschließend auf sichere  Art
       und Weise die ursprüngliche, effektive Benutzer-ID wieder erlangen.

       Wenn  der  Benutzer  root  oder  das  Programm  setuid  root  ist,  ist besondere Sorgfalt
       notwendig.  Die  Funktion  setuid()  überprüft  die  effektive   Benutzer-ID   (UID)   des
       Aufrufenden.  Falls  es  der  Superuser  ist,  werden  alle  diesen  Prozess  betreffenden
       Benutzer-IDs  auf  uid  gesetzt.  Danach  ist  es  für   das   Programm   unmöglich,   die
       root-Privilegien wiederzuerlangen.

       Somit  kann ein »setuid-root«-Programm setuid() nicht nutzen, um vorübergehend Root-Rechte
       abzugeben, die Identität eines  unprivilegierten  Benutzers  anzunehmen  und  dann  wieder
       erneut Root-Privilegien zu erlangen. Sie können dies mit seteuid(2) bewerkstelligen.

RÜCKGABEWERT

       Bei  Erfolg  wird  Null  zurückgegeben.  Bei  einem Fehler wird -1 zurückgegeben und errno
       entsprechend gesetzt.

FEHLER

       EAGAIN Die uid passt nicht auf die aktuelle UID und uid  bringt  den  Prozess  über  seine
              RLIMIT_NPROC-Ressourcenbegrenzung.

       EPERM  Der   Benutzer   ist   nicht   privilegiert   (Linux:   verfügt   nicht   über  die
              CAP_SETUID-Capability) und uid entspricht nicht der  realen  Benutzer-ID  oder  der
              gespeicherten »set-user«-ID des aufrufenden Prozesses.

KONFORM ZU

       SVr4,  POSIX.1-2001.  Nicht  wirklich  zum 4.4BSD-Aufruf kompatibel, der sowohl die reale,
       gespeicherte als auch die effektive Benutzer-ID setzt.

ANMERKUNGEN

       Linux verfügt über das Konzept der  Dateisystem-Benutzer-ID,  die  normalerweise  mit  der
       effektiven   Benutzer-ID   identisch   ist.   Der  Aufruf  von  setuid()  setzt  auch  die
       Dateisystem-Benutzer-ID des aufrufenden Prozesses (siehe setfsuid(2)).

       Falls sich uid von der  alten  effektiven  Benutzer-ID  unterscheidet,  wird  dem  Prozess
       verboten, Speicherauszüge (»core dumps«) zu erstellen.

       Der ursprüngliche Linux-Systemaufruf setuid() unterstützte nur 16-Bit-Benutzer-IDs. Danach
       führte  Linux  2.4  mit  setuid32()  die   Unterstützung   für   32-Bit-IDs   hinzu.   Die
       Glibc-Wrapperfunktion  setuid()  behandelt  die Unterschiede zwischen den Kernel-Versionen
       transparent.

SIEHE AUCH

       getuid(2), seteuid(2), setfsuid(2), setreuid(2), capabilities(7), credentials(7)

KOLOPHON

       This page is part of release 3.54 of the Linux man-pages project.  A  description  of  the
       project,     and    information    about    reporting    bugs,    can    be    found    at
       http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die   deutsche   Übersetzung    dieser    Handbuchseite    wurde    von    Stefan    Janke
       <gonzo@burg.studfb.unibw-muenchen.de>,  Helge  Kreutzmann  <debian@helgefjell.de>,  Martin
       Eberhard      Schauer      <Martin.E.Schauer@gmx.de>      und      Mario       Blättermann
       <mario.blaettermann@gmail.com> 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>.