CHROOT(2) | Linux Programmer's Manual | CHROOT(2) |
NAME
chroot - change root directorySYNOPSIS
#include <unistd.h>Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
- Since glibc 2.2.2:
-
_BSD_SOURCE ||
(_XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) &&
!(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)
Before glibc 2.2.2: none
DESCRIPTION
chroot() changes the root directory of the calling process to that specified in path. This directory will be used for pathnames beginning with /. The root directory is inherited by all children of the calling process.
mkdir foo; chroot foo; cd ..
This call does not close open file descriptors, and such file descriptors may allow access to files outside the chroot tree.
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:- EACCES
- Search permission is denied on a component of the path prefix. (See also path_resolution(7).)
- EFAULT
- path points outside your accessible address space.
- EIO
- An I/O error occurred.
- ELOOP
- Too many symbolic links were encountered in resolving path.
- 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.
- EPERM
- The caller has insufficient privilege.
CONFORMING TO
SVr4, 4.4BSD, SUSv2 (marked LEGACY). This function is not part of POSIX.1-2001.NOTES
A child process created via fork(2) inherits its parent's root directory. The root directory is left unchanged by execve(2).SEE ALSO
chdir(2), path_resolution(7)COLOPHON
This page is part of release 3.53 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.2010-09-20 | Linux |