GNU/Linux |
CentOS 5.4 |
|
![]() |
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 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.
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. |
SVr4, POSIX.1-2001.
getgid(2), setegid(2), setregid(2), capabilities(7)
![]() |
setgid(2) | ![]() |