Python Glossary English

Python 3.12+Linuxosфункция

os.unshare

os — пространства имён

Отсоединяет части исполнительного контекста процесса в новые пространства имён (Python 3.12+). Доступно на Linux.

Синтаксис

os.unshare(...)

Отделяет процесс в новые пространства имён — монтирования, сети, пользователей — на этом построены контейнеры. Обычно требует прав CAP_SYS_ADMIN, кроме пользовательского пространства имён (CLONE_NEWUSER), если система его разрешает. Это низкоуровневый инструмент: в учебном коде он не нужен.

Примеры

import os
os.unshare(os.CLONE_NEWUTS)   # → ? только Linux: процесс получает собственное UTS-пространство имён (нужны права CAP_SYS_ADMIN)
os.unshare(os.CLONE_NEWNS | os.CLONE_NEWUTS)   # → ? только Linux: флаги комбинируются побитовым ИЛИ, всё отделяется одним вызовом
os.unshare(os.CLONE_NEWNET)   # → ? у обычного пользователя без CAP_SYS_ADMIN: PermissionError: [Errno 1] Operation not permitted
os.unshare(os.CLONE_NEWUSER)   # → ? только Linux: единственный флаг, доступный непривилегированному процессу; внутри нового user namespace становятся доступны и остальные
os.unshare(os.CLONE_NEWPID)   # → ? ловушка: сам процесс остаётся в прежнем PID-namespace, в новый попадут только его потомки

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности