#include <sys/types.h> #include <unistd.h> int setgid(gid_t groupID);
setgid
sets one or more of the group IDs of the current
process. groupID
is the new group ID. setgid
succeeds and
sets the effective group ID to the real group ID if groupID
is the
same as the real group ID of the process. If groupID
is not the
same as the real group ID of the process, setgid
succeeds only if
the process belongs to a superuser, in which case it sets the real
group ID, effective group ID, and saved set group ID to groupID
.
setgid
returns a 0
if successful and a
- 1
if unsuccessful.
setgid
to set
the effective group ID to the real group ID:
#include <unistd.h> #include <stdio.h> main() { uid_t realGID, effectiveGID; realGID = getgid(); effectiveGID = getegid(); printf("Real group ID = %dn", (int) realGID); printf("Effective group ID = %dn", (int) effectiveGID); if (realGID != effectiveGID) { if (setgid(realGID) != 0) perror("setgid error"); else printf("Effective group ID changed to %d.n", (int) realGID); } }
getegid
, getgid
, setegid
, setuid
Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.