chroot - change root directory
#include <unistd.h>
int chroot(const char *path);
chroot changes the root directory to that specified in path. This
directory will be used for path names beginning with /. The root
directory is inherited by all children of the current process.
Only the super-user may change the root directory.
Note that this call does not change the current working directory, so
that `.' can be outside the tree rooted at `/'. In particular, the
super-user can escape from a `chroot jail' by doing `mkdir foo; chroot
foo; cd ..'.
On success, zero is returned. On error, -1 is returned, and errno is
set appropriately.
Depending on the file system, other errors can be returned. The more
general errors are listed below:
EPERM The effective UID is not zero.
EFAULT path points outside your accessible address space.
ENAMETOOLONG [Toc] [Back]
path is too long.
ENOENT The file does not exist.
ENOMEM Insufficient kernel memory was available.
ENOTDIR [Toc] [Back]
A component of path is not a directory.
EACCES Search permission is denied on a component of the path prefix.
ELOOP Too many symbolic links were encountered in resolving path.
EIO An I/O error occurred.
SVr4, SVID, 4.4BSD, X/OPEN. This function is not part of POSIX.1.
SVr4 documents additional EINTR, ENOLINK and EMULTIHOP error conditions.
X/OPEN does not document EIO, ENOMEM or EFAULT error conditions.
This interface is marked as legacy by X/OPEN.
chdir(2)
Linux 2.0.30 1997-08-21 CHROOT(2)
[ Back ] |