NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | USAGE | SUMMARY OF TRUSTED SOLARIS CHANGES | SEE ALSO
#include <unistd.h>int setregid(gid_t rgid, gid_t egid);
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 calling process has the PRIV_PROC_SETID
privilege, the real GID and the effective GID can be set to any legal value.
If the calling process does not have the PRIV_PROC_SETID
privilege, either the real GID can be set to the saved setGID from execve(2), or the effective GID can either be set to the saved setGID or the real GID. Note: if a setGID process sets its effective GID to its real GID, it can still set its effective GID back to the saved setGID.
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.
The setregid() function will fail if:
The value of rgid or egid is less than 0 or greater than UID_MAX (defined in <limits.h>).
The calling process does not have the PRIV_PROC_SETID
privilege and a change other than changing the real GID to the saved setGID, or changing the effective GID to the real GID or the saved GID, was specified.
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.
The Trusted Solaris environment replaces the checks of super-user in the Solaris environment with privilege checks.
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | USAGE | SUMMARY OF TRUSTED SOLARIS CHANGES | SEE ALSO