chroot

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
CHROOT(2)		  Linux Programmer’s Manual		    CHROOT(2)



NAME
       chroot - change root directory

SYNOPSIS
       #include <unistd.h>

       int chroot(const char *path);

DESCRIPTION
       chroot  changes	the  root  directory to that specified in path.	 This
       directory will be used for path names  beginning	 with  /.   The	 root
       directory is inherited by all children of the current process.

       Only the super-user may change the root directory.

       Note  that this call does not change the current working directory, so
       that ‘.’ can be outside the tree rooted at ‘/’.	 In  particular,  the
       super-user can escape from a ‘chroot jail’ by doing ‘mkdir foo; chroot
       foo; cd ..’.

RETURN VALUE
       On success, zero is returned.  On error, -1 is returned, and errno  is
       set appropriately.

ERRORS
       Depending  on the file system, other errors can be returned.  The more
       general errors are listed below:


       EPERM  The effective UID is not zero.

       EFAULT path points outside your accessible address space.

       ENAMETOOLONG
	      path is too long.

       ENOENT The file does not exist.

       ENOMEM Insufficient kernel memory was available.

       ENOTDIR
	      A component of path is not a directory.

       EACCES Search permission is denied on a component of the path  prefix.

       ELOOP  Too many symbolic links were encountered in resolving path.

       EIO    An I/O error occurred.

CONFORMING TO
       SVr4,  SVID,  4.4BSD,  X/OPEN.	This function is not part of POSIX.1.
       SVr4 documents additional EINTR, ENOLINK and  EMULTIHOP	error  condi-
       tions.	X/OPEN	does  not document EIO, ENOMEM or EFAULT error condi-
       tions.  This interface is marked as legacy by X/OPEN.

NOTES
       FreeBSD has a stronger jail() system call.

SEE ALSO
       chdir(2)



Linux 2.0.30			  1997-08-21			    CHROOT(2)