|CHROOT(2)||Linux Programmer's Manual||CHROOT(2)|
NAME¶chroot - change root directory
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
- Since glibc 2.2.2:
_XOPEN_SOURCE && ! (_POSIX_C_SOURCE >= 200112L) || /* Since glibc 2.20: */ _DEFAULT_SOURCE || /* Glibc versions <= 2.19: */ _BSD_SOURCE
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 ..
RETURN VALUE¶On success, zero is returned. On error, -1 is returned, and errno is set appropriately.
ERRORS¶Depending on the filesystem, other errors can be returned. The more general errors are listed below:
- Search permission is denied on a component of the path prefix. (See also path_resolution(7).)
- path points outside your accessible address space.
- An I/O error occurred.
- Too many symbolic links were encountered in resolving path.
- path is too long.
- The file does not exist.
- Insufficient kernel memory was available.
- A component of path is not a directory.
- 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¶chroot(1), chdir(2), pivot_root(2), path_resolution(7), switch_root(8)
COLOPHON¶This page is part of release 4.12 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.