setreuid(3-BSD) MISC. REFERENCE MANUAL PAGES setreuid(3-BSD)
NAME
setreuid - set real and effective user IDs
SYNOPSIS
cc [ flag... ] file ... -lucb
int setreuid(ruid, euid)
int ruid, euid;
DESCRIPTION
setreuid 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 dif-
ferent values in the same call. If the effective user ID of
the calling process is super-user, the real user ID and the
effective user ID can be set to any legal value. If the
effective user ID of the calling process is not super-user,
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 execv 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.
RETURN VALUE
Upon successful completion, a value of 0 is returned. Oth-
erwise, a value of -1 is returned and errno is set to indi-
cate the error.
ERRORS
setreuid will fail and neither of the user IDs will be
changed if:
EPERM The calling process's effective user ID is
not the super-user 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.
SEE ALSO
setregid(3) exec(2), getuid(2), setuid(2) in the
Programmer's Reference Manual.
1