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

FreeBSD Manual Pages

  
 
  

home | help
SUSER(9)		 BSD Kernel Developer's	Manual		      SUSER(9)

NAME
     suser, suser_cred -- check	if process has superuser privilege

SYNOPSIS
     #include <sys/param.h>
     #include <sys/systm.h>

     int
     suser(struct thread *td);

     int
     suser_cred(struct ucred *cred, int	flag);

DESCRIPTION
     The suser and suser_cred functions	check if the credentials given include
     superuser powers.

     The suser function	is the most common, and	should be used unless special
     circumstances dictate otherwise.

     The suser_cred function should be used when the credentials to be checked
     are not the thread's own, when there is no	thread,	or when	superuser pow-
     ers should	be extended to imprisoned roots.

     By	default	a process does not command superuser powers if it has been im-
     prisoned by the jail(2) system call.  There are cases however where this
     is	appropriate, and this can be done by setting the PRISON_ROOT bit in
     the flags argument	to the suser_cred function.  It	is important to	review
     carefully in each case that this does not weaken the prison.  Generally
     only where	the action is protected	by the chroot(2) implicit in jail(2)
     call should such powers be	granted.

     The suser and suser_cred functions	note the fact that superuser powers
     have been used in the process structure of	the process specified.	Be-
     cause part	of their function is to	notice whether superuser powers	have
     been used,	the functions should only be called after other	permission
     possibilities have	been exhausted.

RETURN VALUES
     The suser and suser_cred functions	return 0 if the	user has superuser
     powers and	EPERM otherwise.  This is the reverse logic of some other im-
     plementations of suser in which a TRUE response indicates superuser pow-
     ers.

SEE ALSO
     chroot(2),	jail(2)

BSD			       October 15, 1996				   BSD

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=suser&sektion=9&manpath=FreeBSD+5.2-RELEASE+and+Ports>

home | help