Как я могу проверить, является ли подключение в Linux закрытым или общим?

8

Команда mount позволяет сделать связывание монтируемым совместно используемым, подчиненным, совместно используемым + подчиненным, частным или несвязываемым, однако мне не удалось определить для данной точки монтирования тип поддерева, укорененного в привязке-монтировании (расшаренный, подчиненный, частный, общий + раб или необязательный). Как я могу узнать, является ли связывающее устройство рабом или частным?

anaken78
источник

Ответы:

8

Ответ также на mount(8)странице руководства:

Используйте findmnt -o TARGET, PROPAGATION, чтобы увидеть текущие флаги распространения.

Пример:

$ findmnt -o TARGET,PROPAGATION /opt
TARGET PROPAGATION
/opt   shared

$ sudo mount -o bind /opt /mnt
$ sudo mount --make-slave /opt
$ findmnt -o TARGET,PROPAGATION /opt
TARGET PROPAGATION
/opt   private,slave

$ sudo umount /mnt
$ findmnt -o TARGET,PROPAGATION /opt
TARGET PROPAGATION
/opt   private

Проверьте findmntстраницу руководства для других вариантов.

Для справки эти примеры используют:

$ findmnt --version
findmnt from util-linux 2.27.1
Дауд
источник
Какую версию findmntвы используете? Я использую findmntв Ubuntu 14.04, и кажется, что нет опции «РАСПРОСТРАНЕНИЕ».
anaken78
7

В качестве альтернативы ответу Дауда , вы можете напрямую спросить ядро ​​следующим образом:

# cat /proc/1/mountinfo
14 19 0:14 / /sys rw,nosuid,nodev,noexec,relatime shared:7 - sysfs sysfs rw
15 19 0:3 / /proc rw,nosuid,nodev,noexec,relatime shared:12 - proc proc rw
[...]

Из седьмого поля вы можете видеть, что моя /sysфайловая система является общей (как и все /proc).

Также он есть и в одноранговой группе 7 (монтирования в одной и той же одноранговой группе распространяют события друг на друга).

Число in /proc/1/mountinfo- это PID процесса, поскольку процессы могут находиться в разных пространствах имен монтирования и «видеть» разные результаты. Возможно, вы захотите использовать другой PID, т.е. если вы работаете с контейнерами. В остальном 1все просто и понятно.

Общие монтирования доступны начиная с версии ядра Linux 2.6.15.

Totor
источник
-3

Это 2 просмотра одних и тех же данных, изменения в одном отражаются в другом.

mount --bind / source / destrination

/unix/198590/what-is-a-bind-mount

привязки к горам - это просто способ упорядочить представление файловой системы по вашему собственному усмотрению

Sum1sAdmin
источник
1
Это не отвечает на вопрос. Вопрос состоит в том, как найти способ для данного привязанного подключения (общий, подчиненный, частный и т. Д.), Чтобы не определять, что такое подключение.
Космическое оссиффраж
предоставленная ссылка объясняет, что это ничего из вышеперечисленного
Sum1sAdmin
1
@ Rob-d, что ты имеешь в виду под словом "это не так"? Как Космическое Осифрадж указал на мой вопрос, а как насчет типа монтирования, а не как использовать связывающее монтирование?
anaken78
Это тот тип, к которому вы подключаетесь, иначе используйте bindfs -r и т. Д.
Sum1sAdmin