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  begin­
       ning with /.  The root directory is inherited by all chil­
       dren 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 resolv­
              ing path.

       EIO    An I/O error occurred.


CONFORMING TO

       SVr4, SVID, 4.4BSD, X/OPEN.  This function is not part  of

       EMULTIHOP error conditions.  X/OPEN does not document EIO,
       ENOMEM  or  EFAULT  error  conditions.   This interface is
       marked as legacy by X/OPEN.


SEE ALSO

       chdir(2)


Man(1) output converted with man2html