setregid(3C) setregid(3C)
NAME
setregid - Reale und effektive Gruppen-IDs setzen
SYNTAX
#include <unistd.h>
int setregid(gidt rgid, gidt egid);
BESCHREIBUNG
setregid wird verwendet, um die reale und die effektive Gruppen-ID des
aufrufenden Prozesses zu setzen. Wenn rgid gleich -1 ist, wird die
reale GID nicht geändert; wenn egid gleich -1 ist, wird die effektive
GID nicht geändert. Die reale und die effektive GID können im selben
Aufruf auf verschiedene Werte gesetzt werden.
Entspricht die effektive Benutzer-ID des aufrufenden Prozesses dem
Superuser, können die reale GID und die effektive GID auf jeden zuläs-
sigen Wert gesetzt werden.
Entspricht die effektive Benutzer-ID des aufrufenden Prozesses nicht
dem Superuser, kann entweder die reale GID auf die gesicherte
"set-GID" aus execv() gesetzt werden, oder die effektive GID kann ent-
weder auf die gesicherte "set-GID" oder die reale GID gesetzt werden.
Hinweis: Wenn ein Prozeß zum Setzen der GID seine effektive GID auf
seine reale GID setzt, kann er seine effektive GID immer noch auf die
gesicherte "set-GID" zurücksetzen.
Sowohl bei einer Änderung der realen GID (das heißt wenn rgid nicht
gleich -1 ist) als auch bei der Änderung der effektiven GID in einen
Wert, der nicht der realen GID entspricht, wird die gesicherte
"set-GID" mit der neuen effektiven GID gleichgesetzt.
Wird der aktuelle Wert der realen GID geändert, wird der alte Wert aus
der Gruppenzugriffsliste gelöscht [siehe getgroups(2)], sofern er in
dieser Liste eingetragen ist, und der neue Wert wird in die Gruppenzu-
griffsliste aufgenommen, wenn er nicht bereits existiert und wenn
hierdurch nicht die Anzahl der Gruppen in dieser Liste NGROUPS über-
schreitet, wie in der Datei /usr/include/sys/param.h definiert.
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.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
setregid(3C) setregid(3C)
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 setregid fehl, und keine der Gruppen-
IDs wird geändert:
EINVAL Der Wert des Arguments rgid oder egid ist ungültig oder
befindet sich außerhalb des gültigen Bereichs.
EPERM Die effektive Benutzer-ID des aufrufenden Prozesses ent-
spricht nicht der des Superuser, und es wurde eine andere
Änderung als die Änderung der realen GID in die gesicherte
"set-GID" oder der effektiven GID in die reale oder die
gesicherte GID angegeben.
SIEHE AUCH
exec(2), getgroups(2), getuid(2), setuid(2), setreuid(3C), unistd(4).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98