смонтируйте опции для udev-правила смонтированная ext3 фс on14.04.3

Я хочу пойти вне этого отличного решения @A.B. который разрешает автомонтировать данный съемный ext3 FS с помощью a udev правило. Конкретно я хотел бы указать несколько опций монтирования:"nodev,noexec,x-gvfs-show", предпочтительно в определенном udev правило раньше монтировало его, так как это имеет дело с одной очень определенной физической средой.

Без указанной опции объем монтируется так:

$ cat /proc/mounts | grep -e MYLABEL
/dev/mmcblk0p1 /mnt/MYLABEL ext3 rw,relatime,data=ordered 0 0

Для определения монтируют опции, которые я пытался развернуть udev правило из предыдущего решения так:

KERNEL=="mmc*", ENV{ID_FS_UUID}=="______", RUN+="/usr/local/sbin/mount_by.sh '%E{ID_FS_LABEL}' '%E{ID_FS_UUID}' 'nodev,noexec,x-gvfs-show'"

где /usr/local/sbin/mount_by.sh включает:

#!/bin/sh
/bin/mount "/dev/disk/by-uuid/$2" "/mnt/$1" -o "$3"

Вышеупомянутые повреждения бесшумно как определенный корень монтируют, что опции, кажется, отклоняются, и объем (SD-карта) тихо смонтирован в/media/MYUSER/MYLABEL.

Что случилось?


Что я пытался сделать:

Много сообщений я видел контакт с трудностями со спецификацией монтировать-опции (монтировать-опций) при использовании udev (например, 1,2...), остаются оставшимися без ответа.

Каждый имеет дело с опцией GVFS x-gvfs-show используемый в сочетании с udev правила, когда смонтированный объем должен появиться под Devices на Наутилусе GUI и некорневой пользователь должны смочь размонтировать его. Чтобы, по крайней мере, покрыть тот последний аспект я вернулся к не определению, монтируют опцию в моих правилах udev, но добавил /etc/fstab запись, довольно ужасный взлом, учитывая факт я сохраняю функционирование udev правило для того же uuid объема параллельно. Однако, я добавил:

UUID=_________ /mnt/MYLABEL ext3 nodev,noexec,x-gvfs-show 0 2

FS смонтирован, но хотя это появляется, как предназначено в Наутилусе, cat /proc/mounts | grep -e MYLABEL приводит к тому же результату как прежде... т.е. опции nodev,noexec кажись, быть беспечно проигнорированными.

Не слишком удивительно я также получаю сообщение об ошибке на экране:

Не мог смонтировать MYLABEL. Устройство/dev/mmcblk0p1 уже смонтировано в '/mnt/MYLABEL'.

Какая-либо мысль кто-либо?

ЩЕДРОСТЬ попытайтесь предоставить канонический ответ, который может служить этому OP и всем из людей, заинтересованных определением монтировать-опций через a udev правило. Если не возможный, объясните, почему и обеспечивают жизнеспособное обходное решение.Удачи.

6
задан 13 April 2017 в 05:37

3 ответа

Сценарий

#!/bin/sh
export mount_point="/mnt/$1"
existing_device=$(awk '$2 == ENVIRON["mount_point"] {print $1; exit}' < /proc/mounts)
if [ -n "$existing_device" ]; then
  exit 1
fi
mkdir -p "$mount_point"
sleep 1 # Perhaps not necessary, but in the test with the OP it was necessary
mount "/dev/disk/by-uuid/$2" "$mount_point" -o "$3"
exit 0

должен работать прекрасный с udev-правилом как это (необходимо заменить UUID)

KERNEL=="mmc*", ENV{ID_FS_UUID}=="13ededb9-41e9-4674-b9dc-40ce178af91d", RUN+="/usr/local/bin/mount_by '%E{ID_PART_ENTRY_NAME}' '%E{ID_FS_UUID}' nodev,noexec"

, поскольку выполнения udev-правил как root, эти -o будут использоваться.

плохая вещь, определенно в моей системе, x-gvfs-show не работает в списке опций на -o

2
ответ дан 23 November 2019 в 07:55

Вы не должны использовать правило udev для этого. С одной стороны, это вступает в противоречие с удисками: они оба пытаются смонтировать диск в разных местах, и какой из них выиграет - кто-то догадывается. Также, когда вы закончили работу с диском, вы хотите иметь возможность щелкнуть по нему правой кнопкой мыши в графическом интерфейсе и извлечь его, но вы не сможете этого сделать, если его установит правило udev.

Если вы хотите, чтобы он был смонтирован с пользовательскими параметрами или пользовательским местоположением, вам просто нужно добавить для него запись в / etc / fstab и убедиться, что вы включили опцию «user», которая позволяет пользователям без полномочий root выполнять автоматическое монтирование это с udisks, и затем они могут позже демонтировать это.

2
ответ дан 23 November 2019 в 07:55

Завершать ответ A.B.'s и для записи:

Смонтируйте, что опции могут быть указаны внутри udev правила... при определенных условиях. Когда я запустил тесты, я заметил, что некоторые опции:

  • принятый и осуществленный: ro, rw, nodev, noexec
  • принятый и проигнорированный: comment=x-gvfs-show,
  • не принятый, в этом они нарушают udev правило: mode=0XYZ, x-gvfs-show

В последнем случае, повреждаясь udev средства правила udisk автомонтирует носитель с опциями по умолчанию.

udev тег MODE="0550", Вы могли думать эквивалентные вызову только для чтения (ro) монтировать-опция, проигнорирован. Отметьте то определение ro или rw не показывает в Наутилусе, как Вы ожидали бы. Странно полномочия, отображенные Наутилусом, остаются неизменными, тогда как, пытаясь записать если ro установлен приведет к предупреждающему сообщению и запишет отказ разрешения. Ошибка?

Наконец, что не менее важно, не устраивайте /etc/fstab запись одновременно Вы указываете a udev смонтируйте правило для данного устройства. Это будет результаты в конфликте и сообщении об ошибке как udisk будет конкурировать с Вашим udev управляйте для монтирования устройства. Не удивительно в этом. Устройство будет все еще смонтировано хотя (в моем случае, udev правило - не спрашивайте, почему...), и может даже быть получен доступ.

HTH немного.

1
ответ дан 23 November 2019 в 07:55

Другие вопросы по тегам:

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