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

Linux                                           22. November 2010                                      SETUID(2)