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.pkla
und ä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 udev
Regeln 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.pkla
mit:
[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-internal
die vermutlich nur für Ihre lokalen Festplatten und nicht für USB-Sticks gilt, und Sie können entweder auth_admin
oder 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.