*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> standard/setuid (2)              
Title
Content
Arch
Section
 

Contents


setuid(2)							     setuid(2)


NAME    [Toc]    [Back]

     setuid, setgid - set user and group IDs

SYNOPSIS    [Toc]    [Back]

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

     int setuid(uid_t uid);

     int setgid(gid_t gid);

DESCRIPTION    [Toc]    [Back]

     The setuid	system call sets the real user ID, effective user ID, and
     saved user	ID of the calling process.  The	setgid system call sets	the
     real group	ID, effective group ID,	and saved group	ID of the calling
     process.

     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, effective, and
     saved group IDs; they are set to the group	ID of the user responsible for
     the creation of the process.

     When a process calls exec(2) to execute a file (program), the user	and/or
     group identifiers associated with the process can change:

	  The real user	and group IDs are always set to	the real user and
	  group	IDs of the process calling exec.

	  The saved user and group IDs of the new process are always set to
	  the effective	user and group IDs of the process calling exec.

	  If the file executed is not a	set-user-ID or set-group-ID file, the
	  effective user and group IDs of the new process are set to the
	  effective user and group IDs of the process calling exec.

	  If the file executed is a set-user-ID	file, the effective user ID of
	  the new process is set to the	owner ID of the	executed file.

	  If the file executed is a set-group-ID file, the effective group ID
	  of the new process is	set to the group ID of the executed file.

     The following subsections describe	the behavior of	setuid and setgid with
     respect to	the three types	of user	and group IDs.

   setuid
     If	the calling process has	the super-user privilege, the real, effective,
     and saved user IDs	are set	to the uid parameter.

     If	the calling process does not have the super-user privilege, 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.



									Page 1






setuid(2)							     setuid(2)



   setgid
     If	the calling process has	the super-user privilege, the real, effective,
     and saved group IDs are set to the	gid parameter.

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

     setuid and	setgid fail if one or more of the following is true:

     EPERM     For setuid, the calling process does not	have the super-user
	       privilege and the uid parameter does not	match either the real
	       or saved	user IDs.  For setgid, the calling process does	not
	       have the	super-user privilege and the gid parameter does	not
	       match either the	real or	saved group IDs.

     EINVAL    The uid or gid is out of	range.

DIAGNOSTICS    [Toc]    [Back]

     Upon successful completion, a value of 0 is returned.  Otherwise, a value
     of	-1 is returned and errno is set	to indicate the	error.

SEE ALSO    [Toc]    [Back]

      
      
     intro(2), exec(2),	getgroups(2), getuid(2), stat(5).


									PPPPaaaaggggeeee 2222
[ Back ]
 Similar pages
Name OS Title
setruid FreeBSD set user and group ID
setegid NetBSD set user and group ID
seteuid NetBSD set user and group ID
setgid NetBSD set user and group ID
setruid NetBSD set user and group ID
setrgid NetBSD set user and group ID
setgid OpenBSD set user and group ID
seteuid OpenBSD set user and group ID
setegid OpenBSD set user and group ID
setuid NetBSD set user and group ID
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service