Описание тега nanuk
На Linux вы можете заверить, что пид не будет использоваться, сохраняя его пространство имен пид жив. Это можно сделать через файл/proc/$PID в/НС/пид
файл.
человека имен
-Привязать крепления (см.
Крепление(2)
) один из файлов в этот каталог еще где-то в файловой системе, сохраняет соответствующее пространство имен процесс, заданный PID в живых, даже если все процессы в пространстве имен завершить.Открыв один из файлов в этой папке (или файл привязка устанавливаемого в один из этих файлов) возвращает дескриптор файла для соответствующее пространство имен указанный процесс по PID. Как долго как этот дескриптор файла остается открытым, пространство останется в живых, даже если все процессы в пространстве имен завершить. Файл дескриптор может быть передан
setns(2)
.
инициализации
.
человек pid_namespaces
-Первый процесс в новом пространстве имен (т. е., процесс созданные с помощью
клонирования(2)
с CLONE_NEWPID флаг, или первый ребенок создан процесс после вызовав unshare(2)
с помощью CLONE_NEWPID флаг) имеет ПИД-1, и этоинициализации
процесса пространство имен (см.метод init(1)
). Процесс ребенок, который осиротел в пространства имен, будут заново к этому процессу, а неинит(1)
(если только один из предков, ребенка в тот же пидпространства имен использовалвызова prctl(2)
PR_SET_CHILD_SUBREAPER команду пометить себя как Жнец сирот потомок процессов).Если
инициализации
процесса ПИД пространство имен завершается, ядро завершает все процессы в пространстве имен через сигнал SIGKILL сигнала. Это поведение отражает тот факт, чтоинит
процесс важное значение для правильной работы ПИД пространства имен.
утиль-в Linux
пакет содержит множество полезных инструментов для работы с пространствами имен. Например, там запретили
, хотя, если вы еще не организовал свои права в пользовательском пространстве имен, это потребует прав суперпользователя:
скрывать -ФП Ш-с-н=
Эхо "ПИД = $$"
до [ "$((Н+=1))" -ГТ 5 ]
делать во время сна 1
даты
сделано >>вход 2>/Дев/нуль &
сделано; сна 5' >войти
кошка журналов; сна 2
Эхо 2 секунды позже...
хвост -П1 журнал
Если вас не устроили для пространства имен пользователей, то вы все равно можете смело выполнять произвольные команды, немедленно сбросив привилегии. В runuser
команда другая (номера битов setuid) бинарные предусмотренных пакета util-Linux в
пакет и включения он может выглядеть так:
суда отменить общий доступ -ФП runuser -у пользователя "$" - Ш -с '...'
...и так далее.
В приведенном выше примере двух коммутаторов передаются отменить общий доступ(1)
Интернет --вилка
флаг, который делает вызывается Ш-с
процесса первого ребенка создана и обеспечивает его инициализации
состояния, и --пид -
флаг, который указывает, в unshare(1)
для создания пид пространства имен.
В Ш-с
процесс порождения пяти фоновый ребенка снаряды - каждый бесконечного в то время как
цикл, который будет продолжаться, чтобы добавить вывод даты
в конце журнала
, как сон 1
возвращает true. После нереста эти процессы ш
называет сна
еще 5 секунд, затем прекращается.
Это может быть, стоит отметить, что если -Ф
флаг не используется ни одна из фоновом режиме , а
петли бы завершить, но с ним...
Выход:
ПИД = 1
Пн янв 26 19:17:45 ПСТ 2015
Пн янв 26 19:17:45 ПСТ 2015
Пн янв 26 19:17:45 ПСТ 2015
Пн янв 26 19:17:45 ПСТ 2015
Пн янв 26 19:17:45 ПСТ 2015
Пн янв 26 19:17:46 ПСТ 2015
Пн янв 26 19:17:46 ПСТ 2015
Пн янв 26 19:17:46 ПСТ 2015
Пн янв 26 19:17:46 ПСТ 2015
Пн янв 26 19:17:46 ПСТ 2015
Пн янв 26 19:17:47 ПСТ 2015
Пн янв 26 19:17:47 ПСТ 2015
Пн янв 26 19:17:47 ПСТ 2015
Пн янв 26 19:17:47 ПСТ 2015
Пн янв 26 19:17:47 ПСТ 2015
Пн янв 26 19:17:48 ПСТ 2015
Пн янв 26 19:17:48 ПСТ 2015
Пн янв 26 19:17:48 ПСТ 2015
Пн янв 26 19:17:48 ПСТ 2015
Пн янв 26 19:17:48 ПСТ 2015
2 секунды позже...
Пн янв 26 19:17:48 ПСТ 2015