setresuid

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
SETRESUID(2)		  Linux Programmer’s Manual		 SETRESUID(2)



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

SYNOPSIS
       #define _GNU_SOURCE
       #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);

DESCRIPTION
       setresuid  sets the real user ID, the effective user ID, and the saved
       (effective) 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.


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

ERRORS
       EPERM  The current process  was	not  privileged	 (did  not  have  the
	      CAP_SETUID  capability)  and  tried  to change the IDs is a not
	      allowed way.

       EAGAIN uid does not match the current uid and this  call	 would	bring
	      that userID over its NPROC rlimit.

CONFORMING TO
       This call is nonstandard.

HISTORY
       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).

NOTES
       Under  HP-UX  and FreeBSD the prototype is found in <unistd.h>.	Under
       Linux the prototype is given by glibc  since  version  2.3.2  provided
       _GNU_SOURCE is defined.

SEE ALSO
       getuid(2), setuid(2), setreuid(2), getresuid(2)



Linux 2.4			  2003-05-26			 SETRESUID(2)