chroot

Autres langues

Langue: ru

Version: 1997-08-21 (fedora - 25/11/07)

Section: 2 (Appels système)

НАЗВАНИЕ

chroot - изменить корневой каталог

ОБЗОР

#include <unistd.h>

int chroot(const char *path);

ОПИСАНИЕ

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

Только суперпользователь может изменять корневой каталог.

Заметьте, что этот системный вызов не изменяет текущий рабочий каталог, поэтому . может находиться вне дерева каталогов, начинающегося со /. В частности, суперпользователь может выбраться из-под chroot jail с помощью mkdir foo; chroot foo; cd ...

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

В случае успеха возвращается ноль. При ошибке возвращается -1, а errno устанавливается должным образом.

ОШИБКИ

В зависимости от файловой системы могут появляться другие ошибки. Стандартные ошибки таковы:

EPERM
Фактический UID не равен нулю.
EFAULT
path указывает за пределы доступного адресного пространства.
ENAMETOOLONG
path слишком длинно.
ENOENT
Файл не существует.
ENOMEM
Ядру не хватило памяти.
ENOTDIR
Компонент пути, использованный как каталог в path, в действительности таковым не является.
EACCES
В одном из каталогов, находящихся по пути к path, запрещен поиск.
ELOOP
path является зацикленной символической ссылкой, то есть при подстановке возникает ссылка на неё саму.
EIO
Произошла ошибка ввода-вывода.

СООТВЕТСТВИЕ СТАНДАРТАМ

SVr4, SVID, 4.4BSD, X/OPEN. Эта функция не входит в POSIX.1. SVr4 документирует дополнительные коды ошибок EINTR, ENOLINK и EMULTIHOP. X/OPEN не документирует EIO, ENOMEM и EFAULT. Этот интерфейс помечен как "устаревающий" в X/OPEN.

СМОТРИ ТАКЖЕ

chdir(2)

ПЕРЕВОД

Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 1999