Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
setuid(2)			 System	Calls			     setuid(2)

NAME
       setuid, setegid,	seteuid, setgid	- set user and group IDs

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

       int setuid(uid_t	uid);

       int setegid(gid_t egid);

       int seteuid(uid_t euid);

       int setgid(gid_t	gid);

DESCRIPTION
       The  setuid()  function	sets  the real user ID,	effective user ID, and
       saved user ID of	the calling process. The setgid()  function  sets  the
       real  group  ID,	 effective group ID, and saved group ID	of the calling
       process.	The setegid() and seteuid() functions set the effective	 group
       and  user  IDs  respectively  for the calling process. See intro(2) for
       more information	on real, effective, and	saved user and group IDs.

       At login	time, the real user ID,	effective user ID, and saved  user  ID
       of  the	login  process are set to the login ID of the user responsible
       for the creation	of the process.	The same is true for the real,	effec-
       tive, and saved group IDs; they are set to the group ID of the user re-
       sponsible for the creation of the process.

       When a process calls one	of the exec family of functions	(see  exec(2))
       to  execute a file (program), the user and/or group identifiers associ-
       ated with the process can change. If the	file executed is a set-user-ID
       file,  the  effective  and saved	user IDs of the	process	are set	to the
       owner of	the file executed. If the  file	 executed  is  a  set-group-ID
       file,  the  effective and saved group IDs of the	process	are set	to the
       group of	the file executed. If the file executed	is not	a  set-user-ID
       or  set-group-ID	 file, the effective user ID, saved user ID, effective
       group ID, and saved group ID are	not changed.

       If the effective	user ID	of the process calling setuid()	is the	super-
       user,  the real,	effective, and saved user IDs are set to the uid argu-
       ment.

       If the effective	user ID	of the calling process is not the  super-user,
       but  uid	is either the real user	ID or the saved	user ID	of the calling
       process,	the effective user ID is set to	uid.

       If the effective	user ID	of the process calling setgid()	is the	super-
       user, the real, effective, and saved group IDs are set to the gid argu-
       ment.

       If the effective	user ID	of the calling process is not the  super-user,
       but  gid	is either the real group ID or the saved group ID of the call-
       ing process, the	effective group	ID is set to gid.

RETURN VALUES
       Upon successful completion, 0 is	returned. Otherwise,  -1  is  returned
       and errno is set	to indicate the	error.

ERRORS
       The setuid() and	setgid() functions will	fail if:

       EINVAL
	     The value of uid or gid is	out of range.

       EPERM For  setuid()  and	 seteuid()  the	 effective user	of the calling
	     process is	not super-user,	and the	uid argument  does  not	 match
	     either  the  real	or saved user IDs.  For	setgid() and setegid()
	     the effective user	of the calling process is not the  super-user,
	     and  the  gid  argument  does  not	match either the real or saved
	     group IDs.

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

       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |MT-Level		     |setuid() and  setgid()  and  |
       |			     |Async-Signal-Safe		   |
       +-----------------------------+-----------------------------+

SEE ALSO
       intro(2), exec(2), getgroups(2),	getuid(2), stat(3HEAD),	attributes(5)

SunOS 5.9			  28 Dec 1996			     setuid(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | ATTRIBUTES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=setuid&sektion=2&manpath=SunOS+5.9>

home | help