CHROOT(2)
CHROOT(2)
НАЗВАНИЕ
chroot - смена корневого каталога
СИНТАКСИС
int chroot (path) char *path;
ОПИСАНИЕ
Аргумент path является указателем на маршрутное имя каталога. После выполнения системного вызова chroot указанный каталог становится корневым. Именно с корневого каталога начинается поиск файлов по маршрутным именам, первым символом которых служит /. Смены текущего каталога при этом не происходит.
Для успешного выполнения системного вызова chroot необходимо, чтобы соответствующий процессу действующий идентификатор пользователя был идентификатором суперпользователя.
В корневом каталоге обозначение .. интерпретируется как имя самого корневого каталога. Поэтому это обозначение не может использоваться для доступа к файлам, расположенным вне поддерева с корнем в корневом каталоге.
Системный вызов chroot завершается неудачей и смены корневого каталога не происходит, если выполнено хотя бы одно из следующих условий:
[ENOTDIR] Компонент маршрута не является каталогом. [ENOENT] Указанный каталог не существует. [EPERM] Действующий идентификатор пользователя не является идентификатором суперпользователя. [EFAULT] Аргумент path указывает за пределы отведенного процессу адресного пространства. [EINTR] Во время выполнения системного вызова перехвачен сигнал. [ENOLINK] Маршрутное имя path указывает на удаленный компьютер, связи с которым в данный момент нет. [EMULTIHOP] Компоненты path требуют многократного обращения к удаленным компьютерам.
СМ. ТАКЖЕ
.
ДИАГНОСТИКА
При успешном завершении результат равен 0; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки.