SETREGID(2)SETREGID(2)NAMEsetregid - set real and effective group IDs
SYNOPSIS
#include <unistd.h>
int setregid(gid_t rgid, gid_t egid);
DESCRIPTION
The setregid() function is used to set the real and effective group IDs
of the calling process. If rgid is −1, the real group ID is not
changed; if egid is −1, the effective group ID is not changed. The
real and effective group IDs may be set to different values in the same
call.
If the {PRIV_PROC_SETID} privilege is asserted in the effective set of
the calling process, the real group ID and the effective group ID can
be set to any legal value.
If the {PRIV_PROC_SETID} privilege is not asserted in the effective set
of the calling process, either the real group ID can be set to the
saved set-group-ID from execve(2), or the effective group ID can either
be set to the saved set-group-ID or the real group ID.
In either case, if the real group ID is being changed (that is, if rgid
is not −1), or the effective group ID is being changed to a value not
equal to the real group ID, the saved set-group-ID is set equal to the
new effective group ID.
RETURN VALUES
Upon successful completion, 0 is returned. Otherwise, −1 is returned,
errno is set to indicate the error, and neither of the group IDs will
be changed.
ERRORS
The setregid() function will fail if:
EINVAL
The value of rgid or egid is less than 0 or greater than
UID_MAX (defined in <limits.h>).
EPERM
The {PRIV_PROC_SETID} privilege is not asserted in the effec‐
tive set of the calling processes and a change was specified
other than changing the real group ID to the saved set-group-
ID or changing the effective group ID to the real group ID or
the saved group ID.
USAGE
If a set-group-ID process sets its effective group ID to its real group
ID, it can still set its effective group ID back to the saved set-
group-ID.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌────────────────────┬─────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├────────────────────┼─────────────────┤
│Interface Stability │ Standard │
└────────────────────┴─────────────────┘
SEE ALSOexecve(2), getgid(2), setreuid(2), setuid(2), attributes(5), privi‐
leges(5), standards(5)
Mar 22, 2004 SETREGID(2)