setreuid

Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services

NAME

       setreuid, seteuid - set real and / or effective user ID


SYNOPSIS

       #include <unistd.h>

       int setreuid(uid_t ruid, uid_t euid);
       int seteuid(uid_t euid);


DESCRIPTION

       setreuid  sets real and effective user ID's of the current
       process.  Un-privileged users may change the real user  ID
       to the effective user ID and vice-versa.

       Prior  to  Linux  1.1.37, the saved ID paradigm, when used
       with setreuid or seteuid was broken.

       Starting at 1.1.37, it is also possible to set the  effec-
       tive user ID from the saved user ID.

       Only the super-user may make other changes.

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

       Currently  (libc-4.x.x),  seteuid(euid)  is   functionally
       equivalent to setreuid(-1, euid).

       If the real user ID is changed or the effective user ID is
       set to a value not equal to the previous real user ID, the
       saved user ID will be set to the new effective user ID.


RETURN VALUE

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


ERRORS

       EPERM   The current process  is  not  the  super-user  and
               changes other than (i) swapping the effective user
               ID with the real user ID or (ii)  setting  one  to
               the value of the other or (iii) setting the effec-
               tive user ID to the value of the saved user ID was
               specified.


HISTORY

       The setreuid function call appeared in BSD 4.2.


CONFORMING TO

       BSD 4.3


SEE ALSO

       getuid(2), setuid(2)
Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services
Copyright (C) 1998 Hurricane Electric. All Rights Reserved.