Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

setreuid - reale und effektive Benutzernummer setzen

&pagelevel(4)&pagelevel

Definition

#include <unistd.h>

int setreuid(uid_t ruid, uid_t euid)

Beschreibung

setreuid() wird verwendet, um die reale und die effektive Benutzernummer des aufrufenden Prozesses zu setzen. Wenn ruid gleich -1 ist, wird die reale Benutzernummer nicht geändert; wenn euid gleich -1 ist, wird die effektive Benutzernummer nicht geändert. Die reale und die effektive Benutzernummer können im selben Aufruf auf verschiedene Werte gesetzt werden.

Entspricht die effektive Benutzernummer des aufrufenden Prozesses dem Superuser, können die reale Benutzernummer und die effektive Benutzernummer auf jeden zulässigen Wert gesetzt werden.

Entspricht die effektive Benutzernummer des aufrufenden Prozesses nicht dem Superuser, kann entweder die reale Benutzernummer auf die effektive Benutzernummer, oder die effektive Benutzernummer kann entweder auf die gesicherte „set-user-ID“ aus execv oder die reale Benutzernummer gesetzt werden.

Wenn ein Prozess zum Setzen der Benutzernummer (UID) seine effektive Benutzernummer auf seine reale Benutzernummer setzt, kann er seine effektive Benutzernummer immer noch auf die gesicherte „set-user-ID“ zurücksetzen.

Sowohl bei einer Änderung der realen Benutzernummer (d. h. wenn ruid nicht gleich -1 ist) als auch bei der Änderung der effektiven Benutzernummer in einen Wert, der nicht der realen Benutzernummer entspricht, wird die gesicherte „set-user-ID“ mit der neuen effektiven Benutzernummer gleichgesetzt.

Returnwert

0

bei Erfolg.

 

-1

bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

setreuid() schlägt fehl, wenn gilt:

 

EINVAL

Der Wert des Arguments ruid oder euid ist ungültig oder außerhalb des Wertebereiches.

 

EPERM

Die effektive Benutzernummer des aufrufenden Prozesses ist nicht der Superuser, und es wurde eine andere Änderung als die Änderung der realen Benutzernummer in die effektive Benutzernummer oder der effektiven Benutzernummer in die reale oder die gesicherte „set-user-ID“ angegeben.

Siehe auch

getuid(), setuid(), unistd.h.