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 be-
       ginning	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 effective user ID of	the process must be super-user to  change  the
       root  directory.	 While	it  is always possible to change to the	system
       root using the fchroot()	function, it is	not guaranteed to  succeed  in
       any other case, even should fildes be 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	permission is denied  for  the	directory  re-
	     ferred 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 external circumstances do not allow this.

       EINTR A signal was caught during	the execution of  the  chroot()	 func-
	     tion.

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

       EPERM The effective user	of the calling process is not super-user.

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

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

SunOS 5.9			  4 May	1994			     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.9>

home | help