chroot(2) chroot(2)
NAME
chroot - change root directory
SYNOPSIS
#include <unistd.h>
int chroot(const char *path);
DESCRIPTION
path points to a path name naming a directory. chroot causes the
named directory to become the root directory, the starting point for
path searches for path names beginning with /. The user's working
directory is unaffected by the chroot system call.
The effective user ID of the process must be super-user to change the
root directory.
The .. entry in the root directory is interpreted to mean the root
directory itself. Thus, .. cannot be used to access files outside
the subtree rooted at the root directory.
chroot will fail and the root directory will remain unchanged if one
or more of the following are true:
ELOOP Too many symbolic links were encountered in
translating path.
ENAMETOOLONG The length of the path argument exceeds {PATH_MAX}, or
the length of a path component exceeds {NAME_MAX}
while _POSIX_NO_TRUNC is in effect.
EFAULT path points outside the allocated address space of the
process.
EINTR A signal was caught during the chroot system call.
EMULTIHOP Components of path require hopping to multiple remote
machines and file system type does not allow it.
ENOLINK path points to a remote machine and the link to that
machine is no longer active.
ENOTDIR Any component of the path name is not a directory.
ENOENT The named directory does not exist or is a null
pathname.
EPERM The effective user ID is not super-user.
7/91 Page 1
chroot(2) chroot(2)
SEE ALSO
chdir(2).
DIAGNOSTICS
Upon successful completion, a value of 0 is returned. Otherwise, a
value of -1 is returned and errno is set to indicate the error.
Page 2 7/91