Available in

(2) (3) (2)/de (2)/es (2)/fr (2)/ja (2)/ko (2)/nl (2)/pt (2)/ru

Contents

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 Prozess betreffenden Gruppen-IDs 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).

COMMENTS

blog comments powered by Disqus