Я хочу пойти вне этого отличного решения @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
правило. Если не возможный, объясните, почему и обеспечивают жизнеспособное обходное решение.Удачи.
Сценарий
#!/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
Вы не должны использовать правило udev для этого. С одной стороны, это вступает в противоречие с удисками: они оба пытаются смонтировать диск в разных местах, и какой из них выиграет - кто-то догадывается. Также, когда вы закончили работу с диском, вы хотите иметь возможность щелкнуть по нему правой кнопкой мыши в графическом интерфейсе и извлечь его, но вы не сможете этого сделать, если его установит правило udev.
Если вы хотите, чтобы он был смонтирован с пользовательскими параметрами или пользовательским местоположением, вам просто нужно добавить для него запись в / etc / fstab и убедиться, что вы включили опцию «user», которая позволяет пользователям без полномочий root выполнять автоматическое монтирование это с udisks, и затем они могут позже демонтировать это.
Завершать ответ A.B.'s и для записи:
Смонтируйте, что опции могут быть указаны внутри udev правила... при определенных условиях. Когда я запустил тесты, я заметил, что некоторые опции:
ro
, rw
, nodev
, noexec
comment=x-gvfs-show
, mode=0XYZ
, x-gvfs-show
В последнем случае, повреждаясь udev
средства правила udisk
автомонтирует носитель с опциями по умолчанию.
udev
тег MODE="0550"
, Вы могли думать эквивалентные вызову только для чтения (ro
) монтировать-опция, проигнорирован. Отметьте то определение ro
или rw
не показывает в Наутилусе, как Вы ожидали бы. Странно полномочия, отображенные Наутилусом, остаются неизменными, тогда как, пытаясь записать если ro
установлен приведет к предупреждающему сообщению и запишет отказ разрешения. Ошибка?
Наконец, что не менее важно, не устраивайте /etc/fstab
запись одновременно Вы указываете a udev
смонтируйте правило для данного устройства. Это будет результаты в конфликте и сообщении об ошибке как udisk
будет конкурировать с Вашим udev
управляйте для монтирования устройства. Не удивительно в этом. Устройство будет все еще смонтировано хотя (в моем случае, udev
правило - не спрашивайте, почему...), и может даже быть получен доступ.
HTH немного.