setgid — set group identity
#include <sys/types.h> #include <unistd.h>
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
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.
On success, zero is returned. On error, −1 is
returned, and errno
is set
appropriately.
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), credentials(7)
|