CHROOT(2) BSD Programmer's Manual CHROOT(2)NAMEchroot - change root directory
SYNOPSIS
#include <unistd.h>
int
chroot(const char *dirname);
DESCRIPTION
The chroot() function changes the root directory for the process to
dirname, that is, the starting point for pathnames beginning with `/',
and the topmost directory for pathnames containing `..'.
In order for dirname to become the root directory, the process must have
execute (search) access for it.
Note that chroot() has no effect on the process's current directory. To
prevent access to other directories, execute a `chdir("/");' after the
chroot() call.
This call is restricted to the super-user.
RETURN VALUES
Upon successful completion, a value of 0 is returned. Otherwise, a value
of -1 is returned and errno is set to indicate an error.
ERRORSChroot() will fail and the root directory will be unchanged if:
[ENOTDIR] A component of the path name is not a directory.
[EINVAL] The pathname contains a character with the high-order bit set.
[ENAMETOOLONG]
A component of a pathname exceeded 255 characters, or an en-
tire path name exceeded 1023 characters.
[ENOENT] The named directory does not exist.
[EACCES] Search permission is denied for any component of the path
name.
[ELOOP] Too many symbolic links were encountered in translating the
pathname.
[EFAULT] Path points outside the process's allocated address space.
[EIO] An I/O error occurred while reading from or writing to the
file system.
SEE ALSOchdir(2), chroot(8)HISTORY
The chroot function call appeared in 4.2BSD.
4.2 Berkeley Distribution June 4, 1993 1