chroot(2) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨페이지이름
검색(S)

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 possible 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 outside the subtree rooted at the  root  direc-
     tory.  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
                     permission  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  external  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
                     directory.


     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.
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3