NAME
setregid — sets the real and effective group IDs
SYNOPSIS
#include <unistd.h>
int setregid(gid_t rgid, gid_t egid);
DESCRIPTION
setregid()
sets the real and effective group IDs of the calling process.
Only a privileged process can set the real group ID and/or the
effective group ID to any valid value.
A nonprivileged process can set the real group ID to the saved
set-group-ID
from one of the exec family of functions, or the effective
group ID to either the saved
set-group-ID
or the real group ID.
Any supplementary group IDs of the calling process remain unchanged.
Argument
rgid
is the read group ID value to be set with.
If
rgid
is set to
-1,
the real group ID is not be changed.
Argument
egid
is the effective group ID value to be set with.
If
egid
is set to -1, the effective group ID is not changed.
The real and effective group IDs may be set to different
values in the same call.
Security Restrictions
Some or all of the actions associated with this system call require the
PRIV_CHSUBJIDENT
privilege (CHSUBJIDENT).
Processes owned by the superuser will have this privilege.
Processes owned by other users may have this privilege, depending on system
configuration.
See
privileges(5)
for more information about privileged access on
systems that support fine-grained privileges.
RETURN VALUE
Upon successful completion
errno
is set to
0.
Otherwise,
errno
is set to indicate the type of error and neither group IDs are changed.
ERRORS
errno
is set to one of the following values
if the corresponding condition is detected.
- EINVAL
The value of the
rgid
or
egid
argument is invalid or out-of-range.
- EPERM
The process does NOT have all the appropriate privileges other
than to change the real group ID to the saved
set-group-ID,
or to change the effective group ID to either the real group
ID or the saved
set-group-ID.
AUTHOR
setregid()
was developed by the University of California, Berkeley and HP.