chroot(2) chroot(2)
chroot - change root directory
#include <unistd.h>
int chroot(const char *path);
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 calling process must have the super-user privilege 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:
EACCES Search permission is denied on a component of the
pathname.
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.
ETIMEDOUT The named directory is located on a remote file system
which is not available [see intro(2)].
ENOTDIR Any component of the path name is not a directory.
Page 1
chroot(2) chroot(2)
ENOENT The named directory does not exist or is a null pathname.
EPERM The calling process does not have the super-user privilege
for changing the root directory.
chdir(2).
Upon successful completion, a value of 0 is returned. Otherwise, a value
of -1 is returned and errno is set to indicate the error.
PPPPaaaaggggeeee 2222 [ Back ]
|