setreuid(3C) setreuid(3C)
NAME
setreuid - Reale und effektive Benutzer-IDs setzen
SYNTAX
#include <unistd.h>
int setreuid(uidt ruid, uidt euid);
BESCHREIBUNG
setreuid() wird verwendet, um die reale und die effektive Benutzer-ID
des aufrufenden Prozesses zu setzen. Wenn ruid gleich -1 ist, wird die
reale Benutzer-ID nicht geändert; wenn euid gleich -1 ist, wird die
effektive Benutzer-ID nicht geändert. Die reale und die effektive
Benutzer-ID können im selben Aufruf auf verschiedene Werte gesetzt
werden.
Entspricht die effektive Benutzer-ID des aufrufenden Prozesses dem
Superuser, können die reale Benutzer-ID und die effektive Benutzer-ID
auf jeden zulässigen Wert gesetzt werden.
Entspricht die effektive Benutzer-ID des aufrufenden Prozesses nicht
dem Superuser, kann entweder die reale Benutzer-ID auf die effektive
Benutzer-ID, oder die effektive Benutzer-ID kann entweder auf die
gesicherte "set-user-ID" aus execv oder die reale Benutzer-ID gesetzt
werden.
Hinweis: Wenn ein Prozeß zum Setzen der UID seine effektive Benutzer-
ID auf seine reale Benutzer-ID setzt, kann er seine effektive Benut-
zer-ID immer noch auf die gesicherte "set-user-ID" zurücksetzen.
Sowohl bei einer Änderung der realen Benutzer-ID (das heißt wenn ruid
nicht gleich -1 ist) als auch bei der Änderung der effektiven Benut-
zer-ID in einen Wert, der nicht der realen Benutzer-ID entspricht,
wird die gesicherte "set-user-ID" mit der neuen effektiven Benutzer-ID
gleichgesetzt.
RÜCKGABEWERT
Bei erfolgreicher Ausführung wird der Wert 0 zurückgegeben. Andern-
falls wird der Wert -1 zurückgegeben, und errno wird gesetzt, um den
Fehler anzuzeigen.
FEHLER
Die folgenden Beschreibungen der Fehlercodes sind funktionsspezifisch.
Eine allgemeingültige Beschreibung finden Sie in introprm2(2) bzw. in
errno(5).
Bei folgender Bedingung schlägt setreuid fehl, und keine der Benut-
zer-IDs wird geändert:
EINVAL Der Wert des Arguments ruid oder euid ist ungültig oder
befindet sich außerhalb des gültigen Bereichs.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
setreuid(3C) setreuid(3C)
EPERM Die effektive Benutzer-ID des aufrufenden Prozesses ist
nicht der Superuser, und es wurde eine andere Änderung als
die Änderung der realen Benutzer-ID in die effektive Benut-
zer-ID oder der effektiven Benutzer-ID in die reale oder die
gesicherte "set-user-ID" angegeben.
SIEHE AUCH
exec(2), getuid(2), setuid(2), setregid(3C), unistd(4).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98