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


SYNOPSIS

       #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 (introduced in Linux 2.1.44) 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,  effective 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 processes 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 and tried to
              change the IDs is a not allowed way.


CONFORMING TO

       This call is Linux-specific.


SEE ALSO

       getuid(2),  setuid(2),  getreuid(2),  setreuid(2),  getre­
       suid(2)