unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (HP-UX-11.11)
Page:
Section:
Apropos / Subsearch:
optional field



 setuid(2)							   setuid(2)




 NAME
      setuid, setgid - set user and group IDs

 SYNOPSIS
      #include <&lt&lt&lt;unistd.h>&gt&gt&gt;

      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:

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

	   +  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.)

	   +  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:

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

	   +  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.

	   +  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 11i: November 2000






 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, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1

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






























 Hewlett-Packard Company	    - 2 -   HP-UX Release 11i: November 2000