So fordern Sie das Mounten anderer interner Festplattenpartitionen mit Kennwort für alle Mount-Style-Anwendungen an (mit udev)

So fordern Sie das Mounten anderer interner Festplattenpartitionen mit Kennwort für alle Mount-Style-Anwendungen an (mit udev)

Ich versuche, den Zugriff auf andere Partitionen mit unterschiedlichen Dateisystemen auf derselben physischen Festplatte (Layout: gpt) zu blockieren, indem ich das Mounten jeder Partition ohne Kennwort verhindere.

FSTAB kümmert sich um die Verwendung von Mount mit Passwort. Wenn es nicht in FSTAB ist, ist ein Passwort erforderlich.

Für Nautilus und Udisks habe ich versucht, mit udev ENV{UDISKS_-Befehlen wie folgt festzulegen:

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

Ich habe überprüft, dass die ENV hinzugefügt wurden, indem ich

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

Dies scheint jedoch Nautilus oder Udisks (nicht Gksudo) nicht davon abzuhalten, die Partition zu mounten, wenn darauf geklickt wird.

Ich möchte, dass bei diesem Versuch ein Passwort abgefragt wird. Wie hier angegeben:

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

Wenn dies gesetzt ist, wird die übliche bustypbasierte Erkennung, ob ein Gerät als „systemintern“ betrachtet wird, außer Kraft gesetzt. „0“ bedeutet „entfernbar“ (d. h. für automatisches Mounten geeignet und normale Benutzer können mounten), jeder andere Wert bedeutet „systemintern“ (d. h. kein automatisches Mounten und nur Administratoren können mounten).

Dank im Voraus.

PS Im Gegensatz zu diesem

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

verhindert, dass Nautilus die Partition im Gerätebereich anzeigt. Das Ausblenden hindert udisks jedoch wahrscheinlich nicht daran, sie trotzdem zu mounten (habe ich nicht probiert).

Antwort1

Die Lösung gibt es hier bei Reddit:Wie ermöglicht Ubuntu das Mounten interner Blockgeräte ohne Authentifizierung?

Übrigens: Ich verwende Linuxmint-Mate 19.1 (Tessa) und 18.3 (Sylvia), beides LTS-Versionen – basierend auf dem Ubuntu Bionic Package. Ich habe es nicht in Ubuntu selbst getestet.

Öffnen Sie einfach als Root die Datei /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pklaund ändern Sie die Zeile

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;

zu diesem:

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

Wie Sie sehen, löschen Sie einfach diesen Teil der Zeile:

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

Daher wird bei jeder Anforderung zum Mounten einer Partition in Caja ein Authentifizierungsanforderungsfenster zum Mounten geöffnet.

Sie müssen nicht einmal einen Neustart durchführen oder Ihre Benutzersitzung beenden.
Bei mir funktioniert es perfekt.

Antwort2

Ich denke, dies sollte mit Regeln möglich sein PolicyKit/polkit, anstatt die udevRegeln direkt zu bearbeiten.

Unter 12.04 ist die Montage standardmäßig zulässig.

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

Es sollte möglich sein, eine lokale Regel zu erstellen, die dies außer Kraft setzt (siehe man pklocalauthority) und eine Authentifizierung erfordert, um diese Aktion auszuführen. Erstellen Sie eine Datei mit dem Namen z. B. /etc/polkit-1/localauthority.conf.d/50-disable-automount.pklamit:

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

Möglicherweise müssen Sie einige weitere Details untersuchen (z. B. gibt es spezifischere Aktionen, wie z. B. org.freedesktop.udisks.filesystem-mount-system-internaldie vermutlich nur für Ihre lokalen Festplatten und nicht für USB-Sticks gilt, und Sie können entweder auth_adminoder wählen auth_admin_keep, je nachdem, ob ein kürzlich eingegebenes Kennwort ausreichen soll).

Ich bin mir über einige der Semantiken von Policykit nicht ganz sicher und die Dokumentation scheint etwas spärlich zu sein, sodass Sie vielleicht ein wenig herumspielen müssen, aber ich denke, dies ist der richtige Weg, es zu tun. SieheHierfür die Standard-Policykit-Berechtigungen für Aktionen in Ubuntu.

verwandte Informationen