смонтируйте опции для bindmount

Да, ImageMagick может сделать это. Вот учебное руководство для Вас.

5
02.09.2013, 10:26
1 ответ

Короткий ответ, "возможно", потому что он зависит, на которой опции Вы являетесь передающими, и чем он осуществляется. Если опции, Вы являетесь передающими, являются строго флагами суперблока, Вы не должны переупорядочивать опции, поскольку часть связывания монтируется. Если опции, Вы являетесь передающими, содержат флаг vfsmount, то да, необходимо переупорядочить флаги vfsmount. Можно думать "о флаге суперблока" как о том, чтобы подразумевать, что это - часть базовой файловой системы, и "vfsmount флаг" как то, чтобы подразумевать, что это - часть ядра (хотя это не технически верно, начиная с, ядро является тем, осуществляющим обоих в действительности).

Необходимо сделать это с аргументами как noexec, nodev, или nosuid, потому что они применяются на файловую систему (см. этот поток в списке рассылки ядра для некоторой хорошей информации).

$ truncate -s 10M container
$ mkfs.ext4 container
$ mkdir mountpoint binded
$ sudo mount -o loop container mountpoint
$ sudo chown "$EUID" mountpoint
$ sudo mount -o bind mountpoint binded
$ cat > mountpoint/script << 'EOF'
> #!/bin/bash
> echo "This works."
> EOF
$ chmod +x mountpoint/script
$ binded/script 
This works.
$ sudo mount -o remount,noexec mountpoint
$ binded/script
This works.
$ mountpoint/script
bash: mountpoint/script: Permission denied

Обратите внимание на это несмотря на то, чтобы быть тем же сценарием, noexec только осуществляется на файловую систему. Это вызвано тем, что это - флаг vfsmount, не флаг суперблока - то есть, это - функциональность ядра, не файловая система.

Отметьте как вывод mount поскольку эти две точки монтирования похожи после этого и это noexec не переносил:

$ mount
[...]
/tmp/tmp.hoiHQYPEFX/container on /tmp/tmp.hoiHQYPEFX/mountpoint type ext4 (noexec,relatime,data=ordered)
/tmp/tmp.hoiHQYPEFX/container on /tmp/tmp.hoiHQYPEFX/binded type ext4 (relatime,data=ordered)

Если мы повторно монтируем связывание себя с noexec, однако, это работает как ожидалось:

$ sudo mount -o remount,noexec binded
$ mount
[...]
/tmp/tmp.hoiHQYPEFX/container on /tmp/tmp.hoiHQYPEFX/mountpoint type ext4 (noexec,relatime,data=ordered)
/tmp/tmp.hoiHQYPEFX/container on /tmp/tmp.hoiHQYPEFX/binded type ext4 (noexec,relatime,data=ordered)

Опции, которые лежат в основе атрибутов файловой системы, однако, обычно не должны быть сделаны снова на связывании, монтируются (и они, вероятно, повысят ошибку, так как многие поддерживаемые опции определяются файловой системой). Простой для демонстрации ro, опция только для чтения, но это относится к другим флагам суперблока также.

$ sudo mount -o remount,ro mountpoint
$ > mountpoint/test
bash: mountpoint/test: Read-only file system
$ > binded/test
bash: binded/test: Read-only file system

Обратите внимание, что на этот раз, флаг переносит автоматически:

$ mount
[...]
/tmp/tmp.hoiHQYPEFX/container on /tmp/tmp.hoiHQYPEFX/mountpoint type ext4 (ro,noexec,relatime,data=ordered)
/tmp/tmp.hoiHQYPEFX/container on /tmp/tmp.hoiHQYPEFX/binded type ext4 (ro,noexec,relatime,data=ordered)
2
27.01.2020, 20:42
  • 1
    ! Это - очень информативный и воспитательный ответ! При отмечании Вашего как :) –  pepoluan 05.09.2013, 07:57

Теги

Похожие вопросы