Seth Woolley's Man Viewer

setreuid(2) - setregid, setreuid, setregid, setreuid - set real and/or effective user or group ID - man 2 setreuid

([section] manual, -k keyword, -K [section] search, -f whatis)
man plain no title

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



NAME
       setreuid, setregid - set(7,n,1 builtins) real and/or effective user or group ID

SYNOPSIS
       #include <sys/types.h>
       #include <unistd.h>

       int setreuid(uid_t ruid, uid_t euid);
       int setregid(gid_t rgid, gid_t egid);

DESCRIPTION
       setreuid sets real and effective user IDs of the current process.

       Supplying a value of -1 for either the real or effective user ID forces
       the system to leave that ID unchanged.

       Unprivileged processes may only set(7,n,1 builtins) the effective user ID to  the  real
       user ID, the effective user ID or the saved effective user ID.

       POSIX:  It  is  unspecified  whether unprivileged processes may set(7,n,1 builtins) the
       real user ID to the real user ID, the effective user ID  or  the  saved
       effective user ID.

       Linux:  Unprivileged  users(1,5)  may  only set(7,n,1 builtins) the real user ID to the real
       user ID or the effective user ID.

       Linux: If the real user ID is set(7,n,1 builtins) or the effective user ID is set(7,n,1 builtins) to  a
       value not equal to the previous real user ID, the saved user ID will be
       set(7,n,1 builtins) to the new effective user ID.

       Completely analogously, setregid sets real and effective group ID's  of
       the current process, and all of the above holds with "group" instead of
       "user".


RETURN VALUE
       On success, zero is returned.  On error(8,n), -1 is returned, and  errno  is
       set(7,n,1 builtins) appropriately.

ERRORS
       EPERM  The  current process is not privileged (Linux: does not have the
              CAP_SETUID capability in(1,8) the case of setreuid(), or the CAP_SET-
              GID  capability  in(1,8)  the  case of setregid()) and a change other
              than (i) swapping the effective user (group) ID  with  the  real
              user  (group)  ID, or (ii) setting one to the value of the other
              or (iii) setting the effective user (group) ID to the  value  of
              the saved user (group) ID was specified.

NOTES
       Setting  the effective user (group) ID to the saved user ID is possible
       since Linux 1.1.37 (1.1.38).

CONFORMING TO
       BSD 4.3 (the setreuid and setregid function  calls  first  appeared  in(1,8)
       4.2BSD).

SEE ALSO
       getgid(2),  getuid(2),  seteuid(2), setgid(2), setresuid(2), setuid(2),
       capabilities(7)



Linux 2.6                         2004-07-04                       SETREUID(2)

References for this manual (incoming links)