Подтвердить что ты не робот

Пространства имен Linux. Возможно ли существование пространства имен в сети без привязки к процессу?

ip netns создает ссылку на пространство имен имен (named) в /var/run/ns, которое можно легко отследить. То же самое можно было бы определить через /proc/[pid]/ns/net. Тем не менее, для некоторых пользовательских программ можно создать сеть ns и сохранить соответствующий индекс в другом нетрадиционном месте. Это может затруднить определение наличия или отсутствия сетей, которые мы могли бы перечислять.

Во-вторых, unshare <cmd> уничтожает сеть ns, когда процесс завершается, и это нормально. Однако ip netns exec <netns> <cmd> будет поддерживать ns даже после выхода команды/процесса. Поэтому я считаю, что любая пользовательская программа может сделать то же самое.

Следовательно, возникает вопрос: возможно ли, что пользовательская программа создает неназванную сеть ns, и она не связана с каким-либо процессом?

Кроме того, можно ли перечислять такие (скрытые) сети ns из пользовательского пространства, учитывая, что мы не знаем пути к inodes? (Ядро, конечно, имеет связанный список net ns). Фрагмент кода будет полезен.

4b9b3361

Ответ 1

Возможно ли, что пользовательская программа создает неназванную сеть ns, и она не связана с каким-либо процессом?

Да, это возможно. Согласно справочной странице namespaces Linux (http://man7.org/linux/man-pages/man7/namespaces.7.html):

Каждый процесс имеет подкаталог /proc/ [pid]/ns/, содержащий одну запись        для каждого пространства имен, которое поддерживает управление с помощью setns (2):

Установите привязку (см. mount (2)) один из файлов в этом каталоге, чтобы        в другом месте в файловой системе сохраняется соответствующее пространство имен        процесс, указанный pid live, даже если все процессы,        пространство имен завершается.

О другом вопросе:

Можно ли перечислять такие (скрытые) сети ns из пользовательского пространства, учитывая, что мы не знаем пути к inodes?

Если вы рассмотрите приведенную выше цитату из первого вопроса, изучив связанные пути, вы сможете найти эти скрытые пространства имен.