Как я могу создать правило udev смонтировать Карту памяти, только для чтения?

Общее количество блоков (крайний левый столбец с числами в df вывод), включает блоки, которые резервируются для укоренения. Если Вы видите, что “доступный” 0, но “используемый” меньше, чем общее количество, это означает, что все кроме зарезервированных блоков используются. Если “используемые” соответствия общее количество, то все зарезервированные блоки уже используются. В корневой файловой системе это не удивительно: большинство файлов имеет тенденцию принадлежать корню (установленное программное обеспечение, журналы).

6
13.04.2014, 21:14
3 ответа

Итак, суть в том, что Nautilus использует GVFS, и вам нужно указать udev использовать GVFS при чтении записей fstab, вы можете сделать это с помощью:

/dev/block-device /mount/point auto x-gvfs-show,ro 0 0

x-gvfs-show укажет udev и всем заинтересованным использовать помощник GVFS для монтирования файловой системы, так что у gvfs будет весь контроль над монтированием, монтированием, перемещением точек монтирования и т.д.


Давайте посмотрим, понимаем ли мы, как монтируются диски в современных системах Linux с графическим интерфейсом (в частности, в Nautilus):

Nautilus использует GVFS в качестве бэкенда для монтирования FTP, SMB, блочных устройств и других вещей в файловую систему. Инструмент, который GNOME разработал для таких предложений, называется Disks, и именно он изменяет поведение GVFS. Теперь начинается самое интересное.

Nautilus игнорирует все, что не было смонтировано с помощью GVFS (например, с помощью fstab) и дает вам очень рудиментарный контроль над этим с помощью udev (Nautilus не просит GVFS размонтировать или смонтировать устройства, которые не были смонтированы с помощью GVFS, это включает udev, fstab, mount и любой другой blob), например, просто размонтировать и смонтировать. Используя разрешения и опции, хранящиеся в fstab/udev, вы можете использовать эти файловые системы соответствующим образом, но вы не можете изменить поведение с помощью GVFS. Если что-то было смонтировано с помощью sudo mount -o rw /dev/sda3, nautilus сообщает udev, что у него нет прав на изменение точки монтирования, поэтому он передает ответственность udev, который в свою очередь запрашивает разрешения у polkit. Если бы вы использовали GVFS, nautilus сам размонтировал бы устройство без разрешений, диалогов и т.д.

8
27.01.2020, 20:23

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

blockdev --setro /dev/sdb1

. Вы можете заставить udev выполнить эту команду (IIRC RUN = ).

3
27.01.2020, 20:23

Я думаю, проблема в ПОДСИСТЕМА , вам следует изменить ее на usb вместо block ]. Я добавляю эту строку в свое правило, и у меня она работает:

SUBSYSTEMS="usb", ENV{ID_FS_USAGE}=="filesystem", ENV{UDISKS_MOUNT_OPTIONS}="ro"
2
27.01.2020, 20:23

Теги

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