setgid(2) - Linux man page
Name
setgid - set group identitySynopsis
#include <sys/types.h>#include <unistd.h>
int setgid(gid_t gid);
Description
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 reengage the original effective group ID in a secure manner.
Return Value
On success, zero is returned. On error, -1 is returned, and errno is set appropriately.Errors
- EPERM
- The calling process is not privileged (does not have the CAP_SETGID capability), and gid does not match the real group ID or saved set-group-ID of the calling process.