Установка: Ubuntu 16.04.03 с единицей I/F
Основанная на HAL/etc/fstab система для монтирования устройств предлагает защиту функционирования только для суперпользователя и также позволяет устанавливать чтение и свойства записи на точку монтирования (cf. fstab страница справочника).
С другой стороны, согласно этому gvfs-mount
страница справочника:
gvfs-mount provides commandline access to various aspects of GIOs
mounting functionality.
Mounting refers to the traditional concept of arranging multiple file
systems and devices in a single tree, rooted at /. Classical mounting
happens in the kernel and is controlled by the mount utility. GIO
expands this concept by introducing mount daemons that can make file
systems available to GIO applications without kernel involvement.
Есть ли способ указать разрешение только для суперпользователя вызвать gvfs-mount
, или для всех устройств или для каждого устройства? И способ установить чтение и разрешение записи на точке монтирования устройства при использовании gvfs-mount
?
В стороне: В противном случае, почему нет?
В Ubuntu gvfs-mount
использует udisks2
для контроля громкости «локальных» устройств :
Мониторы громкости предоставляют набор
blockquote>GDrive
/GVolume
/GMount
объекты, представляющие физическое устройство или иерархию услуг. Так называемые собственные мониторы томов предоставляют доступ к локально доступным устройствам, то есть к тем, которые появляются в / dev и монтируются стандартными способами POSIX (mount
,umount
). GVfs предоставляет несколько их реализаций (hal, gdu, udisks2), и только одна может быть активной.Вы можете контролировать доступ к udisks2, используя правила Polkit. Соответствующие действия polkit:
$ pkaction| grep mount org.freedesktop.udisks2.filesystem-mount org.freedesktop.udisks2.filesystem-mount-other-seat org.freedesktop.udisks2.filesystem-mount-system org.freedesktop.udisks2.filesystem-unmount-others
Вы можете требовать административного доступа через правило Polkit, например, так (скажем, в
/etc/polkit-1/localauthority/50-local.d/disable-mount.pkla
):[Disable mount] Action=org.freedesktop.udisks2.filesystem* Identity=* ResultActive=auth_admin ResultAny=auth_admin ResultInactive=auth_admin
Это будет означать, что пользователям потребуется Права администратора Polkit (по умолчанию группа
sudo
или пользователь root в Ubuntu). Будет показано следующее приглашение:polkit 0.106 добавляет поддержку правил JavaScript, что означает, что вы можете устанавливать более тонкие разрешения, но эта версия еще не доступна в Ubuntu .
Предположительно
gvfs-mount
оставляет фактические права на чтение / запись для бэкэнда монтирования.Тем не менее, правила в
/etc/fstab
по-прежнему имеют приоритет над тем, чтоgvfs-mount
делает. С этим правилом для/dev/sdb
в/etc/fstab
:/dev/sdb /mnt ext4 ro,noexec 0 0
gvfs-mount
просто выдает ошибку иudisksctl
монтирует, используя правилоfstab
:$ gvfs-mount -d /dev/sdb No volume for device file /dev/sdb $ udisksctl mount -b /dev/sdb Mounted /dev/sdb at /mnt.
Конечно,
udisksctl
попросил авторизацию Polkit, так как я создал файлpkla
, упомянутый ранее.