NAME

     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, effec-
     tive and saved user ID's 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), getresuid(2)