| NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | NOTES | CONFORMING TO | SEE ALSO | COLOPHON | The Linux Programming Interface |
SETGID(2) Linux Programmer's Manual SETGID(2)
setgid - set group identity
#include <sys/types.h>
#include <unistd.h>
int setgid(gid_t gid);
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 reengage the original effective group ID in a secure manner.
On success, zero is returned. On error, -1 is returned, and errno is set
appropriately.
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.
The original Linux setgid() system call supported only 16-bit group IDs.
Subsequently, Linux 2.4 added setgid32() supporting 32-bit IDs. The glibc
setgid() wrapper function transparently deals with the variation across kernel
versions.
SVr4, POSIX.1-2001.
getgid(2), setegid(2), setregid(2), capabilities(7), credentials(7)
This page is part of release 3.32 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/.
Linux 2010-11-22 SETGID(2)
HTML rendering created 2010-12-03 by Michael Kerrisk, author of The Linux Programming Interface