SETUID(2)

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 Prozeß 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).