#include <unistd.h> int
setreuid (uid_t ruid uid_t euid);
The real and effective user IDs of the
current process are set according to the arguments.
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.
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.
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
When setting the real and effective user IDs to the same value,
system call is preferred.
Rv -std setreuid
Bq Er EPERM
The current process is not the super-user and a change
other than changing the effective user-id to the real user-id