Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

setuid - Benutzernummer setzen

&pagelevel(4)&pagelevel

Definition

#include <unistd.h>

Optional
#include <sys/types.h> (Ende)

int setuid(uid_t uid);

Beschreibung

Wenn der Prozess Sonderrechte hat, setzt die Funktion setuid() die reale, die effektive und die gesicherte Benutzernummer gleich uid.

Wenn der Prozess keine Sonderrechte hat, aber uid gleich der realen oder der gesicherten Benutzernummer ist, setzt setuid() die effektive Benutzernummer gleich uid. Die reale und die gesicherte Benutzernummer bleiben unverändert.

Returnwert

0

bei Erfolg.

 

-1

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

Fehler

setuid() schlägt fehl, wenn gilt:

 

EPERM

Der Prozess hat keine Sonderrechte und uid entspricht auch nicht seiner realen oder gesicherten Benutzernummer.

Hinweise

Eine häufige Anwendung von setuid() ist die Aufgabe von nicht mehr benötigten Rechten in Programmen mit gesetztem s-Bit für den Eigentümer (insbesondere root). Solche Programme benötigen die durch das s-Bit gewährten Rechte oft nur für ganz bestimmte Aufgaben. Werden die Rechte nicht mehr benötigt, so können sie durch einen Aufruf der folgenden Form wieder aufgegeben werden:

erg = setuid(getuid());

Siehe auch

setpgid(), sys/types.h, unistd.h.