unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Page:
Section:
Apropos / Subsearch:
optional field

chroot(2)                        System Calls                        chroot(2)



NAME
       chroot, fchroot - change root directory

SYNOPSIS
       #include <unistd.h>

       int chroot(const char *path);

       int fchroot(int fildes);

DESCRIPTION
       The  chroot()  and  fchroot() functions cause a directory to become the
       root directory, the starting point for path  searches  for  path  names
       beginning with / (slash). The user's working directory is unaffected by
       the chroot() and fchroot() functions.

       The path argument points to a path name naming a directory. The  fildes
       argument  to  fchroot()  is  the  open file descriptor of the directory
       which is to become the root.

       The privilege {PRIV_PROC_CHROOT} must be asserted in the effective  set
       of  the process to change the root directory. While it is always possi-
       ble to change to the system root using the fchroot()  function,  it  is
       not guaranteed to succeed in any other case, even if fildes is valid in
       all respects.

       The ".." entry in the root directory is interpreted to  mean  the  root
       directory  itself.  Therefore, ".." cannot be used to access files out-
       side the subtree rooted at the root directory. Instead,  fchroot()  can
       be  used  to  reset  the root to a directory that was opened before the
       root directory was changed.

RETURN VALUES
       Upon successful completion, 0 is returned. Otherwise, -1  is  returned,
       the  root directory remains unchanged, and errno is set to indicate the
       error.

ERRORS
       The chroot() function will fail if:

       EACCES                  Search permission is denied for a component  of
                               the  path  prefix of dirname, or search permis-
                               sion is denied for the directory referred to by
                               dirname.



       EBADF                   The descriptor is not valid.



       EFAULT                  The path argument points to an illegal address.



       EINVAL                  The fchroot() function attempted to change to a
                               directory the is not the system root and exter-
                               nal circumstances do not allow this.



       EINTR                   A signal was caught during the execution of the
                               chroot() function.



       EIO                     An I/O error occurred  while  reading  from  or
                               writing to the file system.



       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.



       ENOENT                  The named directory does not exist or is a null
                               pathname.



       ENOLINK                 The path argument 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  direc-
                               tory.



       EPERM                   The   {PRIV_PROC_CHROOT}   privilege   is   not
                               asserted in the effective set  of  the  calling
                               process.



SEE ALSO
       chroot(1M), chdir(2), privileges(5)

WARNINGS
       The  only use of fchroot() that is appropriate is to change back to the
       system root.




SunOS 5.10                        20 Jan 2003                        chroot(2)