setgid()
sets the effective group ID of the calling process.
If the caller is the
superuser, the real GID and saved set-group-ID are also set.
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.
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 effective group ID or saved set-group-ID of
the calling process.
This page is part of release 3.14 of the Linux
man-pages
project.
A description of the project,
and information about reporting bugs,
can be found at
http://www.kernel.org/doc/man-pages/.