PolicyKit und der alltägliche Wahnsinn mit den Rechten

Alternativer Titel: “Problem gelöst…Jetzt erst recht!”. Gestern erreichte mich ein Kommentar, was mich dazu brachte erneut über diesen merkwürdigen Bug “Not authorized” nachzudenken. Egal wie ich es anstellte, sobald ich versuchte etwas in Thunar als normaler Nutzer zu mounten, wurde ich mit einer Meldung von PolicyKit abgewimmelt.
Das Problem hat zwei Dimensionen. Zum einen scheint der Bug mit der Wahl des Loginmanagers zusammen zuhängen. Slim erkennt oder wählt hier zumindest nicht die richtigen Einstellungen, damit PolicyKit die Rechte für die einzelnen Nutzer des Systems setzen kann. Auch mit einer Lösung ohne Loginmanager hatte ich keinen Erfolg. Man könnte z.B. mit der xinitrc-Methode ebenfalls in eine grafische Desktopumgebung starten:
exec ck-launch-session dbus-launch openbox-session
Ich schaute mir noch einmal den entsprechenden Debian-Fehlerbericht an. Der letzte Eintrag verweist dabei auf den Loginmanager lightdm. Lightdm scheint ziemlich neu zu sein, denn es gibt keine Version für Squeeze. Er selbst nennt sich kompatibel mit aktuellen Entwicklungen von PolicyKit und PAM. Vielleicht hatte ich hier mehr Glück.
Tatsächlich lassen sich nach einer Installation von Lightdm wieder externe Speichermedien ohne Probleme auch in Thunar mounten. Nur die restriktive Einstellung, dass lediglich Administratoren interne Partitionen oder Medien mounten konnten, gefiel mir noch nicht richtig.
Damit auch interne Laufwerke oder Partitionen ohne die Rechte eines Admins eingehängt werden können, genügt ein kleiner Eintrag in /etc/polkit-1/localauthority/50-local.d/10-udisks.pkla.
Die Textdatei kann beliebig benannt werden. Wichtig ist nur, dass der Dateiname auf .pkla endet. Mehr Informationen dazu gibt es auch mit man pklocalauthority. Interessanterweise schlägt ubuntu.com vor, dass man den Nutzer zur Admingruppe hinzufügen sollte, wenn man interne Datenträger mounten möchte. Ich sehe dabei das Problem, dass dadurch auch andere Aktionen möglich werden, die besser nur durch root ausgeführt werden und nicht durch irgendeinen Benutzer auf dem System.
Am Ende erstellte ich die Datei 10-udisks.pkla mit folgendem Inhalt

[Storage Permissions]
Identity=unix-group:disk
Action=org.freedesktop.udisks.filesystem-mount;org.freedesktop.udisks.filesystem-mount-system-internal;org.freedesktop.udisks.filesystem-unmount-others;org.freedesktop.udisks.drive-eject;org.freedesktop.udisks.drive-detach;org.freedesktop.udisks.luks-unlock;org.freedesktop.udisks.inhibit-polling;org.freedesktop.udisks.drive-set-spindown
ResultAny=no
ResultActive=yes
ResultInactive=no

Fügt man den normalen Benutzer zur Gruppe “disk” hinzu, kann dieser ab sofort wieder Partitionen oder Speichermedien auch intern mounten. PolicyKit ist sicher eine fortgeschrittene Möglichkeit Benutzerrechte zu definieren und diese auf verschiedene Anwendungen anzuwenden. Leider ist die Dokumentation zu sehr auf Entwickler ausgelegt. Als Endanwender erschließen sich manche Entscheidungen von Debian und PolicyKit nicht auf den ersten Blick. Danke auch für die Hinweise an diesen Post im Forum von Arch Linux.
Wem Debians restriktive Politik beim Mounten von Datenträgern bisher missfallen hat, kann mit einer kleinen Änderung dieses Verhalten schnell ändern. Man muss vorher nur wissen, dass es mit PolicyKit zu tun hat. 😉

Problem gelöst…NICHT

Auf meinem 10 Jahre alten Inspiron 4000 Laptop läuft zur Zeit Debian Sid mit Openbox. Insgesamt bin ich auch sehr zufrieden damit. Lediglich die neue, alte 6 GB Festplatte von `99 geht mir auf die Nerven. Zwischenzeitlich sah es so aus als ob die klappernden Geräusche der ursprünglichen 30 GB IBM-Travelstar-Platte nur Einbildung waren, weswegen ich beinahe schon vergessen hatte, warum ich mir dieses archaische Ersatzteil ersteigert hatte.
Doch dann machte es beim Booten nur noch Klack-Klack-Klack, nichts ging mehr und mein Vertrauen war endgültig erschüttert. Zum Glück bin ich was Backups angeht leicht paranoid und konnte mit Hilfe von Clonezilla ein nicht ganz so altes Abbild leicht wieder aufspielen.
Nach der Transplantation kam mir aber plötzlich die krude Idee meinen geliebten Dateimanager Thunar etwas aufzumotzen. Einige erinnern sich vermutlich noch an die Zeit als Thunar nicht mit Protokollen wie Samba oder sshfs umgehen konnte und noch HAL zum Mounten von externen Speichergeräten benötigte.
Mittlerweile sind wir ja bei XFCE 4.8 angekommen und solch alter Ballast ist schon lange kein Thema mehr. Thunar setzt nun auf gvfs, das Gnome Virtual File System. OMG, es ist Gnome! Für wahre Linuxpuristen natürlich ein Graus. Meiner Meinung nach aber eine sehr gelungene Sache, da es mir die Freiheit lässt auf ein solches Feature zu verzichten oder es eben doch zu nutzen.
Also installierte ich gvfs, thunar-volman und alle anderen Pakete, die Thunar noch größer und mächtiger machen, stöpselte einen USB-Stick an den Laptop und musste lesen: “Not authorized”. Excusez moi? Wieso hatte ich plötzlich keine Rechte mehr?
Natürlich war mir beim Installieren nicht entgangen, dass ich Pakete wie udisk und policykit mit auf meinen Laptop geladen hatte. Mein erster Gedanke war auch sofort: Policykit ist schuld!
Eine ambitionierte Internetrecherche mit meiner Lieblingssuchmaschine Google (*schleim*, danke für die vielen Hits und die Werbemillionen.) brachte mich dann der Lösung des Problems näher.
Zuerst landete ich in einem netten Blog, das vorschlug Policykit klar zu machen, dass alle Mitglieder der Gruppe plugdev auch tatsächlich ihre USB-Sticks mounten durften und .xinitrc zu verdeutlichen, dass Consolekit dafür da war um die Session in Openbox zu kontrollieren.
Das war es noch nicht. Konnte es das ArchLinux Forum und Wiki mal wieder richten? Ich nutze nämlich Slim als Loginmanager, vielleicht lag es ja daran?
Fehlanzeige. Ich hätte schwören können, das war es. Ah, ein Debian Bug Report. Interessant, interessant seit September 2010 also nur Probleme und keiner dieser überbezahlten Freiwilligen kümmert sich darum? Ich fordere, ich erwarte….ach egal.
So, Upstream weiß also auch schon davon. Na prima, dann ist ja alles klar.
Wer auf ein Happy End gehofft hatte, muss leider enttäuscht werden. Das war zwar erst das zweite Problem neben ein paar Midori Bugs, dass mich in sechs Monaten mit Debian Sid beschäftigt hat, es sollte nur etwas deutlich machen. Debian Unstable funktioniert prinzipiell ziemlich gut, aber ab und an treten Probleme mit Programmen auf, die sich nicht immer auch direkt lösen lassen. Wer am liebsten das Neueste testet ist gerne zu Sid eingeladen, Debian Stable alias Squeeze macht aber vieles leichter.
Natürlich lassen sich USB-Sticks auch weiterhin mit dem Terminal und dem Mount-Befehl einhängen. Auch andere Dateimanager und Desktopumgebungen sind möglich. Das hätte mich aber um diesen kleinen Text gebracht. 😉
Achja, und die 6 GB Festplatte…sie ist §$%” langsam. Deshalb versuche ich gerade eine neue zu ersteigern. Ich bitte also von weiteren Geboten zu Travelstar-Festplatten in den nächsten Tagen abzusehen. 😛