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

FreeBSD Manual Pages

  
 
  

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

NAME
       chroot, fchroot - change	root directory

SYNOPSIS
       #include	<unistd.h>

       int chroot(const	char *path);

       int fchroot(int fildes);

DESCRIPTION
       The  chroot()  and  fchroot() functions cause a directory to become the
       root directory, the starting point for path  searches  for  path	 names
       beginning with /	(slash). The user's working directory is unaffected by
       the chroot() and	fchroot() functions.

       The path	argument points	to a path name naming a	directory. The	fildes
       argument	 to  fchroot()	is  the	 open file descriptor of the directory
       which is	to become the root.

       The privilege {PRIV_PROC_CHROOT}	must be	asserted in the	effective  set
       of  the process to change the root directory. While it is always	possi-
       ble to change to	the system root	using the fchroot()  function,	it  is
       not guaranteed to succeed in any	other case, even if fildes is valid in
       all respects.

       The ".."	entry in the root directory is interpreted to  mean  the  root
       directory  itself.  Therefore, ".." cannot be used to access files out-
       side the	subtree	rooted at the root directory. Instead,	fchroot()  can
       be  used	 to  reset  the	root to	a directory that was opened before the
       root directory was changed.

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

ERRORS
       The chroot() function will fail if:

       EACCES		       Search permission is denied for a component  of
			       the  path  prefix of dirname, or	search permis-
			       sion is denied for the directory	referred to by
			       dirname.

       EBADF		       The descriptor is not valid.

       EFAULT		       The path	argument points	to an illegal address.

       EINVAL		       The fchroot() function attempted	to change to a
			       directory the is	not the	system root and	exter-
			       nal circumstances do not	allow this.

       EINTR		       A signal	was caught during the execution	of the
			       chroot()	function.

       EIO		       An  I/O	error  occurred	 while reading from or
			       writing to the file system.

       ELOOP		       Too many	symbolic  links	 were  encountered  in
			       translating path.

       ENAMETOOLONG	       The   length   of  the  path  argument  exceeds
			       PATH_MAX, or the	length	of  a  path  component
			       exceeds	NAME_MAX  while	 _POSIX_NO_TRUNC is in
			       effect.

       ENOENT		       The named directory does	not exist or is	a null
			       pathname.

       ENOLINK		       The  path  argument  points to a	remote machine
			       and the link  to	 that  machine	is  no	longer
			       active.

       ENOTDIR		       Any  component of the path name is not a	direc-
			       tory.

       EPERM		       The   {PRIV_PROC_CHROOT}	  privilege   is   not
			       asserted	 in  the  effective set	of the calling
			       process.

SEE ALSO
       chroot(1M), chdir(2), privileges(5)

WARNINGS
       The only	use of fchroot() that is appropriate is	to change back to  the
       system root.

SunOS 5.10			  20 Jan 2003			     chroot(2)

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

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

home | help