все Python 3Linux · macOSosфункция
os.chroot
os — каталоги
Меняет корневой каталог процесса (требует привилегий). Доступно на Unix.
Синтаксис
os.chroot(...)
Требует прав суперпользователя и не является механизмом безопасности: процесс с правами root может выбраться из chroot, а текущий каталог при смене корня не меняется — его нужно сменить отдельно. Для изоляции приложений используют контейнеры и пространства имён. В учебных задачах chroot почти не встречается.
Примеры
import os
os.chroot('/srv/jail') # → ? только Unix: корнем процесса становится /srv/jail, функция ничего не возвращает
os.chdir('/') # → ? только Unix: обязательный шаг после chroot — иначе рабочий каталог остаётся вне «клетки»
print(os.listdir('/')) # → ? только Unix: видно уже содержимое /srv/jail, например ['bin', 'etc', 'lib']
os.chroot('/srv/нет-такого') # → FileNotFoundError: каталог нового корня должен существовать
os.chroot('/srv/jail') # → PermissionError, если процесс запущен не от root
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности