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 присваивается код ошибки.