SETGID

Section: Linux Programmer's Manual (2)
Updated: 2002-03-09
Index Return to Main Contents
 

NAME

setgid - set group identity  

SYNOPSIS

#include <sys/types.h>
#include <unistd.h>

int setgid(gid_t gid);  

DESCRIPTION

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.
 

CONFORMING TO

SVr4, POSIX.1-2001.  

SEE ALSO

getgid(2), setegid(2), setregid(2), capabilities(7), credentials(7)  

COLOPHON

This page is part of release 3.22 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/.