The real and effective user IDs of the
current process are set according to the arguments.
If
ruid
or
euid
is -1, the current uid is filled in by the system.
Unprivileged users may change the real user
ID to the effective user ID and vice-versa; only the super-user may
make other changes.
If the real user ID is changed (i.e.amp;
ruid
is not -1) or the effective user ID is changed to something other than
the real user ID, then the saved user ID will be set to the effective user ID.
The
setreuid()
system call has been used to swap the real and effective user IDs
in set-user-ID programs to temporarily relinquish the set-user-ID value.
This purpose is now better served by the use of the
seteuid(2)
system call.
When setting the real and effective user IDs to the same value,
the standard
setuid()
system call is preferred.