Как требовать монтирования с паролем других внутренних разделов жесткого диска для всех приложений в стиле монтирования (с помощью udev)

Я пытаюсь заблокировать доступ к другим разделам с другими файловыми системами на том же физическом жестком диске (layout: gpt), предотвращая монтирование любого раздела без ввода пароля.

FSTAB заботится об использовании mount с паролем. Если его нет в FSTAB, для него потребуется пароль.

Для Nautilus и udisks я пытался udev, задавая команды ENV {UDISKS_ примерно так:

KERNEL=="sda10", ENV{UDISKS_PRESENTATION_NOPOLICY}="1", ENV{UDISKS_SYSTEM_INTERNAL}="1"

Я проверил, что ENV добавляются с помощью

udevadm info --name="/dev/sda10" --query=all

, но это делает не мешает (не gksudo) Nautilus или udisks монтировать раздел при нажатии.

Я хотел бы, чтобы он запрашивал пароль при попытке. Как указано здесь:

http://manpages.ubuntu.com/manpages/precise/man7/udisks.7.html

Если установлено, это переопределит обычное определение типа шины на основе того, считается ли устройство «внутренним по системе». «0» означает «съемный» (т. Е. Подходит для автоматического монтирования, и обычные пользователи могут монтировать), любое другое значение означает «внутренняя система» (т. Е. Нет автоматического монтирования, и монтировать могут только администраторы).

Спасибо заранее.

P.S. В отличие от этого

KERNEL == "sda10", ENV {UDISKS_PRESENTATION_HIDE} = "1"

не позволяет Наутилусу представить раздел в разделе устройств. Несмотря на то, что сокрытие, вероятно, в любом случае не мешает udisks смонтировать его (не пробовал)

0
задан 7 February 2014 в 16:50

2 ответа

Я думаю, что это должно быть возможно с PolicyKit/polkit правилами, а не с непосредственным редактированием udev правил.

По умолчанию в 12.04 монтаж разрешен по умолчанию.

user@precise:~$ pkaction --verbose --action-id org.freedesktop.udisks.filesystem-mount
org.freedesktop.udisks.filesystem-mount:
  description:       Mount a device
  message:           Authentication is required to mount the device
  vendor:            The udisks Project
  vendor_url:        http://udisks.freedesktop.org/
  icon:              drive-removable-media
  implicit any:      no
  implicit inactive: no
  implicit active:   yes

Должно быть возможно создать локальное правило, которое переопределяет это (см. man pklocalauthority) и требует аутентификации для выполнения этого действия. Создайте файл с именем, например, /etc/polkit-1/localauthority.conf.d/50-disable-automount.pkla, содержащий:

[Disable automount]
Identity=unix-user:*
Action=org.freedesktop.udisks.filesystem-mount
ResultAny=auth_admin
ResultInactive=auth_admin
ResultActive=auth_admin

Вам может потребоваться изучить некоторые дополнительные детали (например, существуют более конкретные действия, такие как org.freedesktop.udisks.filesystem-mount-system-internal, которые предположительно применяются только к локальным жестким дискам, а не чем USB-накопители, и вы можете выбрать auth_admin или auth_admin_keep в зависимости от того, хотите ли вы, чтобы недавно введенный пароль был достаточным).

Я не совсем уверен в некоторой семантике policykit, и документация кажется немного скудной, поэтому вам, возможно, придется немного поиграть, но я думаю, что это правильный способ сделать это. См. здесь , чтобы узнать разрешения политик по умолчанию для действий в Ubuntu.

0
ответ дан 7 February 2014 в 16:50

Решение здесь в Reddit: , Как Ubuntu позволяет монтироваться внутренних блочных устройств без аутентификации?

BTW: Я использую linuxmint-помощника 19.1 (tessa) и 18.3 (Sylvia) оба Выпуски LTS - на основе Ubuntu Бионический Пакет. Я не протестировал в самой человечности.

Просто открытый как корень файл /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla и изменение строка

Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*;org.freedesktop.udisks2.filesystem-mount-system;org.freedesktop.udisks2.encrypted-unlock-system;org.freedesktop.udisks2.filesystem-fstab;

этому:

Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*;org.freedesktop.udisks2.encrypted-unlock-system;org.freedesktop.udisks2.filesystem-fstab;

, Как Вы видите, просто удалите эту часть строки:

org.freedesktop.udisks2.filesystem-mount-system;

Так, в каждом запросе для монтирования раздела в Caja окно запроса аутентификации откроется для монтирования его;

Вы даже не должны перезагружать или выходить из своего сеанса пользователя.
Это работает отлично на меня.

1
ответ дан 8 October 2019 в 15:27

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

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