NAME
setreuid — set real and effective user IDs
SYNOPSIS
#include <unistd.h>
int setreuid(uid_t ruid, uid_t euid);
DESCRIPTION
The
setreuid()
function sets the real and effective user IDs of the current process
to the values specified by the
ruid
and
euid
arguments. If
ruid
or
euid
is -1, the corresponding effective or real
user ID of the current process is left unchanged.
A process with appropriate privileges can set either
ID to any value. An unprivileged process can only
set the effective user ID if the
euid
argument is equal to either the real, effective, or saved user
ID of the process.
It is unspecified whether a process without
appropriate privileges is permitted to change the
real user ID to match the current real, effective or
saved user ID of the process.
RETURN VALUE
Upon successful completion, 0 is returned. Otherwise,
-1 is returned and
errno
is set to indicate the error.
ERRORS
The
setreuid()
function will fail if:
- [EINVAL]
The value of the
ruid
or
euid
argument is invalid or out-of-range.
- [EPERM]
The current process does not have
appropriate privileges, and either
an attempt was made to change the
effective user ID to a value other
than the real user ID or the saved
set-user-ID or an attempt was
made to change the real user ID to a
value not permitted by the implementation.
CHANGE HISTORY
First released in Issue 4, Version 2.