SETGID(2) Linux Programmer's Manual SETGID(2)
setgid - set group identity
int setgid(gid_t gid);
setgid() sets the effective group ID of the current process. If the
caller is the superuser, the real GID and saved set-group-ID are also
Under Linux, setgid() is implemented like the POSIX version with the
_POSIX_SAVED_IDS feature. This allows a set-group-ID program that is
not set-user-ID-root to drop all of its group privileges, do some un-
privileged work, and then re-engage the original effective group ID in
a secure manner.
On success, zero is returned. On error, -1 is returned, and errno is
EPERM The calling process is not privileged (does not have the
CAP_SETGID capability), and gid does not match the effective
group ID or saved set-group-ID of the calling process.
getgid(2), setegid(2), setregid(2), capabilities(7)
Linux 2.5 2002-03-09 SETGID(2)