Я читаю mount и clone man page. Я хочу уточнить, как CLONE_NEWNS влияет на представление файловой системы для дочернего процесса.
(Иерархия файлов)
Давайте рассмотрим это дерево как иерархию каталогов. Давайте предположим, что 5 и 6 являются точками монтирования в родительском процессе. Я уточнил точки монтирования в другом вопросе .
Итак, я понимаю: 5 и 6 являются точками монтирования, означает, что команда mount
использовалась ранее для "монтирования" файловых систем (иерархий каталогов) на 5 и 6 (это означает, что должны быть деревья каталогов под 5 и 6 также).
От mount
справочной страницы:
A mount namespace is the set of filesystem mounts that are visible to a process.
Из clone
справочной страницы:
Every process lives in a mount namespace. The namespace of a process is the data
(the set of mounts) describing the file hierarchy as seen by that process. After
a fork(2) or clone() where the CLONE_NEWNS flag is not set, the child lives in the
same mount namespace as the parent.
Также:
After a clone() where the CLONE_NEWNS flag is set, the cloned child is started in a
new mount namespace, initialized with a copy of the namespace of the parent.
Теперь, если я использую clone()
с CLONE_NEWNS
для создания дочернего процесса, означает ли это, что ребенок получит точную копию точек монтирования в дереве (5 и 6) и все еще сможет получить доступ к остальным исходного дерева? Это также означает, что ребенок мог установить 5 и 6 по своему желанию, не влияя на то, что смонтировано на 5 или 6 в пространстве имен для родительского процесса.
Если да, значит ли это также, что ребенок может монтировать/отключать другой каталог, чем 5 или 6, и влиять на видимость родительского процесса?
Спасибо.