setuid

Autres langues

Langue: de

Version: 19. August 1996 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

BEZEICHNUNG

setuid - setzen der Benutzeridentität

ÜBERSICHT

#include <unistd.h>

int setuid(uid_t uid)

BESCHREIBUNG

setuid setzt die effektive Benutzer-ID des aktuellen Prozesses. Wird diese Funktion durch den Superuser aufgerufen, so wird die reale und die gesicherte ID auch gesetzt.

Unter Linux ist setuid wie unter SYSV mit SAVE_IDS implementiert. Dieses erlaubt einem setuid-Programm (nicht setuser root) alle Privilegien des entsprechenden Benutzer abzugeben, um unpriviligierte Arbeiten zu verrichten, und um danach wieder die orginale effektive Benutzer-ID zu bekommen, dies erfolgt alles auf eine sichere Art und Weise.

Wenn der Benutzer root oder das Programm setuid root ist, ist besondere Sorgfalt notwendig. Die Funktion setuid überprüft die effektive uid (Benutzer-ID) des Aufrufers und handelt es sich dabei um den Superuser, so werden alle diesen Prozess betreffenden Benutzer-ID auf uid gesetzt. Nachdem dies geschehen ist, ist es für das Programm unmöglich, Superuser-Privilegien wiederzuerlangen.

RÜCKGABEWERT

War der Funktionsaufruf erfolgreich, so wird 0 zurückgeliefert. Im Fehlerfall wird -1 zurückgegeben und errno wird entsprechend gesetzt.

FEHLER

EPERM
Der Benutzer ist nicht der Superuser und uid entspricht nicht der effektiven oder gesicherten ID des aufrufenden Prozesses.

KONFORM ZU

System V

SIEHE AUCH

getuid(2), setreuid(2), seteuid(2).