Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

setgid - Gruppennummer eines Prozesses setzen

&pagelevel(4)&pagelevel

Definition

#include <unistd.h>

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

int setgid(gid_t gid);

Beschreibung

Wenn der Prozess Sonderrechte hat, setzt setgid() die reale, die effektive und die gesicherte Gruppennummer gleich gid.

Wenn der Prozess keine Sonderrechte hat, aber gid gleich der realen oder der gesicherten Gruppennummer ist, dann setzt setgid() die effektive Gruppennummer gleich gid, während die reale und gesicherte Gruppenummer unverändert bleiben. Vorhandene zusätzliche Gruppennummern des aufrufenden Prozesses bleiben unverändert.

Returnwert

0

bei Erfolg.

 

-1

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

Fehler

setgid() schlägt fehl, wenn gilt: 

 

EINVAL

Der Wert gid ist ungültig und wird nicht unterstützt.

 

EPERM

Der Prozess besitzt keine Sonderrechte und gid entspricht weder der realen noch der gesicherten Gruppennummer.

Hinweise

Beim Login werden die reale Benutzernummer, die effektive Benutzernummer und die gesicherte Benutzernummer des Login-Prozesses auf die Benutzernummer des Benutzers gesetzt, der für die Erzeugung des Prozesses verantwortlich ist. Dasselbe gilt für die reale, effektive und gesicherte Gruppennummer; sie werden auf die Gruppennummer des Benutzers gesetzt, der für die Erzeugung des Prozesses verantwortlich ist.

Wenn ein Prozess exec() aufruft, um eine Datei auszuführen, können sich die Benutzer- und/oder Gruppennummern, die mit dem Prozess verbunden sind, ändern. Wenn die ausgeführte Datei eine ’set-user-ID’-Datei ist, werden die effektive und gesicherte Benutzernummer des Prozesses auf den Benutzer der ausgeführten Datei gesetzt. Wenn die ausgeführte Datei eine ’set-group-ID’-Datei ist, werden die effektive und gesicherte Gruppennummer des Prozesses auf die Gruppe der ausgeführten Datei gesetzt. Wenn die Datei keine ’set-user-ID’- oder ’set-group-ID’-Datei ist, werden die effektive Benutzernummer, die gesicherte Benutzernummer, die effektive Gruppennummer und die gesicherte Gruppennummer nicht verändert.

Siehe auch

exec, getgid(), setuid(), sys/types.h, unistd.h.