- online man pages   

Linux man pages : setresuid (2)
SETRESUID(2)		   Linux Programmer's Manual		  SETRESUID(2)


setresuid, setresgid - set real, effective and saved user or group ID


#include <unistd.h> int setresuid(uid_t ruid, uid_t euid, uid_t suid); int setresgid(gid_t rgid, gid_t egid, gid_t sgid);


setresuid sets the real user ID, the effective user ID, and the saved set-user-ID of the current process. Unprivileged user processes (i.e., processes with each of real, effec- tive and saved user ID nonzero) may change the real, effective and saved user ID, each to one of: the current uid, the current effective uid or the current saved uid. The super-user may set real, effective and saved user ID to arbitrary values. If one of the parameters equals -1, the corresponding value is not changed. Completely analogously, setresgid sets the real, effective and saved group ID's of the current process, with the same restrictions for pro- cesses with each of real, effective and saved user ID nonzero.


On success, zero is returned. On error, -1 is returned, and errno is set appropriately.


EPERM The current process was not privileged and tried to change the IDs is a not allowed way.


This call is nonstandard.


This system call was first introduced in HP-UX. It is available under Linux since Linux 2.1.44. These days it is also found in FreeBSD (for emulation of Linux binaries).


Under HP-UX and FreeBSD the prototype is found in <unistd.h>. Under Linux there is so far no include file giving the prototype - this is a glibc bug. Programs using this system call must add the prototype them- selves.


getuid(2), setuid(2), setreuid(2), getresuid(2) Linux 2.1.44 2001-11-15 SETRESUID(2)