NAME
setregid — set
real and effective group IDs
SYNOPSIS
int setregid(gid_t rgid, gid_t egid);
DESCRIPTION
The setregid () function shall set the
real and effective group IDs of the calling process.
If rgid is -1, the real group ID shall not be changed; if egid is -1, the effective group ID shall not be changed.
The real and effective group IDs may be set to different values in the same call.
Only a process with appropriate privileges can set the real group ID and the effective group ID to any valid value.
A non-privileged process can set either the real group ID to the saved set-group-ID from one of the exec family of functions, or the effective group ID to the saved set-group-ID or the real group ID.
Any supplementary group IDs of the calling process remain unchanged.
RETURN VALUE
Upon successful completion, 0 shall be returned. Otherwise, -1 shall be returned and errno set to indicate the error, and neither of the group IDs are changed.
ERRORS
The setregid () function shall fail
if:
- [EINVAL]
- The value of the rgid or egid argument is invalid or out-of-range.
- [EPERM]
- The process does not have appropriate privileges and a change 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 set-group-ID, was requested.
EXAMPLES
None.
APPLICATION 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.
RATIONALE
None.
FUTURE DIRECTIONS
None.
SEE ALSO
exec(3), getegid(3), geteuid(3), getgid(3), getuid(3), setegid(3), seteuid(3), setgid(3), setreuid(3), setuid(3), the Base Definitions volume of IEEE Std 1003.1-2001 (“POSIX.1”), <unistd.h>
CHANGE HISTORY
First released in Issue 4, Version 2.
Issue 5
Moved from X/OPEN UNIX extension to BASE.
The DESCRIPTION is updated to indicate that the saved set-group-ID can be set by any of the exec family of functions, not just execve(3).
End of informative text. footer end