NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | USAGE | SUMMARY OF TRUSTED SOLARIS CHANGES | SEE ALSO
#include <unistd.h>int setreuid(uid_t ruid, uid_t euid);
The setreuid() function is used to set the real and effective user IDs of the calling process. If ruid is -1, the real user ID is not changed; if euid is -1, the effective user ID is not changed. The real and effective user IDs may be set to different values in the same call.
If the calling process has the PRIV_PROC_SETID
privilege, the real user ID and the effective user ID can be set to any legal value.
If the calling process does not have the PRIV_PROC_SETID
privilege, either the real user ID can be set to the effective user ID, or the effective user ID can either be set to the saved set-user ID from execve(2) or the real user ID. Note: if a set-UID process sets its effective user ID to its real user ID, it can still set its effective user ID back to the saved set-user ID.
In either case, if the real user ID is being changed (that is, if ruid is not -1), or the effective user ID is being changed to a value not equal to the real user ID, the saved set-user ID is set equal to the new effective user ID.
The setreuid() function will fail if:
The value of ruid or euid 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 user ID to the effective user ID, or changing the effective user ID to the real user ID or the saved set-user ID, was specified.
If a set-user-ID process sets its effective user ID to its real user ID, it can still set its effective user ID back to the saved set-user 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