unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Page:
Section:
Apropos / Subsearch:
optional field

setreuid(2)                      System Calls                      setreuid(2)



NAME
       setreuid - set real and effective user IDs

SYNOPSIS
       #include <unistd.h>

       int setreuid(uid_t ruid, uid_t euid);

DESCRIPTION
       The  setreuid() function is used to set the real and effective user IDs
       of the calling process. If ruid is -1, the real user ID is not changed;
       if  euid  is  -1,  the  effective  user ID is not changed. The real and
       effective user IDs may be set to different values in the same call.

       If the {PRIV_PROC_SETID} privilege is asserted in the effective set  of
       the  calling process, the real user ID and the effective user ID can be
       set to any legal value.

       If the {PRIV_PROC_SETID} privilege is not asserted in the effective set
       of  the  calling  process,  either  the  real user ID can be set to the
       effective user ID, or the effective user ID can either be  set  to  the
       saved set-user ID from execve() (seeexec(2)) or the real user ID.

       In  either case, if the real user ID is being changed (that is, if ruid
       is not  -1), or the effective user ID is being changed to a  value  not
       equal  to  the  real user ID, the saved set-user ID is set equal to the
       new effective user ID.

       All privileges are required to change to uid 0.

RETURN VALUES
       Upon successful completion, 0 is returned. Otherwise, -1  is  returned,
       errno is set to indicate the error, and neither of the user IDs will be
       changed.

ERRORS
       The setreuid() function will fail if:

       EINVAL          The value of ruid or euid is less than   0  or  greater
                       than UID_MAX (defined in <&lt;limits.h>&gt;).



       EPERM           The  {PRIV_PROC_SETID} privilege is not asserted in the
                       effective set of the calling processes and a change was
                       specified  other  than changing the real user ID to the
                       effective user ID, or changing the effective user ID to
                       the  real  user ID or the saved set-user ID. See privi-
                       leges(5) for additional restrictions which  apply  when
                       changing to UID 0.



USAGE
       If  a  set-user-ID  process sets its effective user ID to its real user
       ID, it can still set its effective user ID back to the  saved  set-user
       ID.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:


       tab()     allbox;     cw(2.750000i)|    cw(2.750000i)    lw(2.750000i)|
       lw(2.750000i).  ATTRIBUTE TYPEATTRIBUTE VALUE Interface  StabilityStan-
       dard


SEE ALSO
       exec(2),   getuid(2),  setregid(2),  setuid(2),  attributes(5),  privi-
       leges(5), standards(5)



SunOS 5.10                        22 Mar 2004                      setreuid(2)