"Fossies" - the Fresh Open Source Software archive 
int setgid(gid_t gid)
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.