HPUX setuid[2]






 setuid(2)                                                         setuid(2)





 NAME
      setuid, setgid - set user and group IDs

 SYNOPSIS
      #include <unistd.h>

      int setuid(uid_t uid);

      int setgid(gid_t gid);

 DESCRIPTION
      setuid() sets the real-user-ID (ruid),effective-user-ID (euid), and/or
      saved-user-ID (suid) of the calling process.  The super-user's euid is
      zero.  The following conditions govern setuid's behavior:

           o  If the euid is zero, setuid() sets the ruid, euid, and suid to
              uid.

           o  If the euid is not zero, but the argument uid is equal to the
              ruid or the suid, setuid() sets the euid to uid; the ruid and
              suid remain unchanged.  (If a set-user-ID program is not
              running as super-user, it can change its euid to match its
              ruid and reset itself to the previous euid value.)

           o  If euid is not zero, but the argument uid is equal to the
              euid, and the calling process is a member of a group that has
              the PRIV_SETRUGID privilege (see privgrp(4)), setuid() sets
              the ruid to uid; the euid and suid remain unchanged.

      setgid() sets the real-group-ID (rgid), effective-group-ID (egid),
      and/or saved-group-ID (sgid) of the calling process.  The following
      conditions govern setgid()'s behavior:

           o  If euid is zero, setgid() sets the rgid and egid to gid.

           o  If euid is not zero, but the argument gid is equal to the rgid
              or the sgid, setgid() sets the egid to gid; the rgid and sgid
              remain unchanged.

           o  If euid is not zero, but the argument gid is equal to the
              egid, and the calling process is a member of a group that has
              the PRIV_SETRUGID privilege (see privgrp(4)), setgid() sets
              the rgid to gid; the egid and sgid remain unchanged.

 RETURN VALUE
      Upon successful completion, setuid() and setgid() returned 0;
      otherwise, they return -1 and set errno to indicate the error.

 ERRORS
      setuid() and setgid() fail and return -1 if any of the following
      conditions are encountered:



 Hewlett-Packard Company            - 1 -     HP-UX Release 9.0: August 1992






 setuid(2)                                                         setuid(2)





           [EPERM]        None of the conditions above are met.

           [EINVAL]       uid (gid) is not a valid user (group) ID.

 WARNINGS
      It is recommended that the PRIV_SETRUGID capability be avoided, as it
      is provided for backward compatibility.  This feature may be modified
      or dropped from future HP-UX releases.  When changing the real user ID
      and real group ID, use of setresuid() and setresgid() (see
      setresuid(2)) are recommended instead.

 AUTHOR
      setuid() was developed by AT&T, the University of California,
      Berkeley, and HP.

      setgid() was developed by AT&T.

 SEE ALSO
      exec(2), getprivgrp(2), getuid(2), setresuid(2) privgrp(4).

 STANDARDS CONFORMANCE
      setuid(): AES, SVID2, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1

      setgid(): AES, SVID2, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1






























 Hewlett-Packard Company            - 2 -     HP-UX Release 9.0: August 1992