SETGID(2)

BEZEICHNUNG
setgid - setzt die Gruppenidentität (GID)

ÜBERSICHT
#include <unistd.h>

int setgid(gid_t gid)

BESCHREIBUNG
setgid setzt die effektive Gruppen-ID des aktuellen Prozesses. Wird diese Funktion durch den Superuser aufgerufen, dann wird auch die reale und die gesicherte Gruppen-ID gesetzt. Unter Linux ist setgid, wie unter SYSV, mit SAVED_IDS implementiert. Dies erlaubt einem setgid-Programm (für Nicht-Superuser), alle Gruppenprivilegien abzugeben, einige nichtprivilegierte Arbeiten zu erledigen und dann, auf sichere Art und Weise, die orginale effektive Gruppen-ID zurückzuerhalten. Wenn es sich um den Superuser oder um ein Programm handelt, bei welchem das Set-GID-Bit auf root gesetzt ist, ist besondere Sorgfalt notwendig. Die setgid Funktion überprüft die effektive GID des aufrufenden Prozesses und wenn es die des Superusers ist, werden alle diesen Prozeß betreffenden Gruppen-ID's auf gid gesetzt. Nachdem dies geschehen ist, ist es für das Programm unmöglich wieder Superuser-Privilegien zu erhalten.

RÜCKGABEWERT
Im Erfolgsfall wird 0 zurückgeliefert. Im Fehlerfall wird -1 zurückgeliefert und errno wird entsprechend gesetzt.

FEHLER

EPERM
    Der Benutzer ist nicht der Superuser und gid entspricht nicht der effektiven oder gesicherten Gruppen-ID des aufrufenden Prozesses.

KONFORM ZU
System V

SIEHE AUCH
getgid(2), setregid(2), setegid(2).