seteuid(2) - Linux man page
Name
seteuid, setegid - set effective user or group IDSynopsis
#include <sys/types.h>#include <unistd.h>
int seteuid(uid_t euid);
int setegid(gid_t egid);
Description
Precisely the same holds for setegid() with "group" instead of "user".
Return Value
On success, zero is returned. On error, -1 is returned, and errno is set appropriately.Errors
- EPERM
- The current process is not privileged (Linux: does not have the CAP_SETUID capability in the case of seteuid(), or the CAP_SETGID capability in the case of setegid()) and euid (resp. egid) is not the real user (group) ID, the effective user (group) ID, or the saved set-user-ID (saved set-group-ID).
Notes
Setting the effective user (group) ID to the saved set-user-ID (saved set-group-ID) is possible since Linux 1.1.37 (1.1.38). On an arbitrary system one should check _POSIX_SAVED_IDS.Under libc4, libc5 and glibc2.0 seteuid(euid) is equivalent to setreuid(-1,euid) and hence may change the saved set-user-ID. Under glibc2.1 it is equivalent to setresuid(-1, euid,-1) and hence does not change the saved set-user-ID. Similar remarks hold for setegid().
