Man Pages

setresuid(2) - phpMan setresuid(2) - phpMan

Command: man perldoc info search(apropos)  

SETRESUID(2)               Linux Programmer's Manual              SETRESUID(2)

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

       #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);

       setresuid() sets the real user ID, the effective user ID, and the saved set-user-ID of the calling process.

       Unprivileged  user processes may change the real UID, effective UID, and saved set-user-ID, each to one of: the
       current real UID, the current effective UID or the current saved set-user-ID.

       Privileged processes (on Linux, those having the CAP_SETUID capability) may set the real  UID,  effective  UID,
       and saved set-user-ID to arbitrary values.

       If one of the arguments equals -1, the corresponding value is not changed.

       Regardless  of what changes are made to the real UID, effective UID, and saved set-user-ID, the file system UID
       is always set to the same value as the (possibly new) effective UID.

       Completely analogously, setresgid() sets the real GID, effective GID, and saved  set-group-ID  of  the  calling
       process  (and  always modifies the file system GID to be the same as the effective GID), with the same restric-
       tions for non-privileged processes.

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

       EAGAIN uid does not match the current UID and this call would bring that user ID over its RLIMIT_NPROC resource

       EPERM  The  calling  process is not privileged (did not have the CAP_SETUID capability) and tried to change the
              IDs to values that are not permitted.

       These calls are available under Linux since Linux 2.1.44.

       These calls are non-standard; they also appear on HP-UX and some of the BSDs.

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

       getresuid(2),  getuid(2),  setfsgid(2),  setfsuid(2),  setreuid(2), setuid(2), capabilities(7), credentials(7),

       This page is part of release 3.22 of the Linux man-pages project.  A description of the project,  and  informa-
       tion about reporting bugs, can be found at

Linux                             2007-07-26                      SETRESUID(2)