Изменить корневую директорию
#include <unistd.h>
                                       
int chroot( const char *path );
  
    - path
- Путь к новой корневой директории.
libc
Функция chroot() делает директорию path корневой, начальной точкой для поиска файлов, чьи имена начинаются с /. Рабочий каталог пользователя не изменяется.
Элемент .. для корневой директории интерпретируется как сама корневая директория. Таким образом, нельзя использовать .. для доступа к файлам вне поддерева, имеющего корень не в корневой директории.
  
    - 0
- Успешное завершение.
- -1
- Возникла ошибка. Код ошибки записан в errno.
 
  -  EACCES   
-  Для части префикса пути отсутствует право на поиск.    
-  EBADF   
-  Дескриптор не является корректным.    
-  EFAULT   
-  Аргумент пути указывает на некорректный адрес.    
-  EINTR   
-  Во время выполнения функции chroot() пришел сигнал.    
-  EIO   
-  Во время чтения или записи в файловой системе произошла ошибка ввода/вывода.    
-  ELOOP   
-  Слишком много уровней символических ссылок или префиксов.    
-  EMULTIHOP   
-  Части path требуют перехода на некоторое количество удаленных машин, а файловая система не поддерживает этого.    
-  ENAMETOOLONG   
-  Длина строки path превышает PATH_MAXили часть пути к файлу длиннееNAME_MAX, пока действует_POSIX_NO_TRUNC.
-  ENOENT   
-  Файл не существует, или аргумент path указывает на пустую строку.    
-  ENOLINK   
-  path указывает на удаленную машину, связь с этой машиной более не активна.    
-  ENOTDIR   
-  Часть префикса пути не является директорией.    
-  EPERM   
-  Эффективный пользователь вызывающего процесса не является суперпользователем.  
Legacy Unix
 
-  Нет  
-  Обработчик прерываний   
-  Нет  
-  Обработчик сигналов   
-  Нет  
-  В потоке   
-  Да  
 chdir()
 
Предыдущий раздел:  Описание API системной библиотеки