CHROOT(2)

НАЗВАНИЕ
chroot - смена корневого каталога

СИНТАКСИС


        int chroot (path)

        char *path;

ОПИСАНИЕ
Аргумент path является указателем на маршрутное имя каталога. После выполнения системного вызова chroot указанный каталог становится корневым. Именно с корневого каталога начинается поиск файлов по маршрутным именам, первым символом которых служит /. Смены текущего каталога при этом не происходит.

Для успешного выполнения системного вызова chroot необходимо, чтобы соответствующий процессу действующий идентификатор пользователя был идентификатором суперпользователя.

В корневом каталоге обозначение .. интерпретируется как имя самого корневого каталога. Поэтому это обозначение не может использоваться для доступа к файлам, расположенным вне поддерева с корнем в корневом каталоге.

Системный вызов chroot завершается неудачей и смены корневого каталога не происходит, если выполнено хотя бы одно из следующих условий:

[ENOTDIR]
Компонент маршрута не является каталогом.
[ENOENT]
Указанный каталог не существует.
[EPERM]
Действующий идентификатор пользователя не является идентификатором суперпользователя.
[EFAULT]
Аргумент path указывает за пределы отведенного процессу адресного пространства.
[EINTR]
Во время выполнения системного вызова перехвачен сигнал.
[ENOLINK]
Маршрутное имя path указывает на удаленный компьютер, связи с которым в данный момент нет.
[EMULTIHOP] Компоненты path требуют многократного обращения к удаленным компьютерам.

СМ. ТАКЖЕ
chdir(2).

ДИАГНОСТИКА
При успешном завершении результат равен 0; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки.