Zugriffsrechte von Wechselmedien unter Linux
Ich habe gerade unter Ubuntu 10.04 ein Problem mit einem USB-Stick mit FAT-Dateisystem. Er soll mit bestimmten Permissions eingehängt werden. Ubuntu verwendet jedoch Vorgabewerte, die für meinen Zweck nicht tauglich sind. Deshalb habe ich im Netz nach einer Lösung gesucht; nachfolgend findet Ihr die Zusammenfassung meiner Recherche.
Der Stick enthält meine verschiedenen Schlüssel (GPG, SSH usw.). Ich speichere die privaten Schlüssel ungern auf meinem Notebook, weil ich (a) an mehr als einem Rechner arbeite und daher mehrere Kopien der Schlüssel brauchte und (b) auf Reisen gerne Notebook und Schlüssel voneinander getrennt habe. Falls mir jemand das Notebook entwendet, ist nur die Hardware verloren; die darauf gespeicherten verschlüsselten Daten sind ohne die Schlüssel nutzlos.
Nun habe ich aber das Problem, dass mein Ubuntu 10.04 den Stick so mountet, dass die Dateien mit den Rechten rwxr-xr-x sichtbar sind. Vernünftigerweise weigert sich ssh-add private Schlüssel mit derartigen Rechten zu akzeptieren.Es stellt sich die Frage, wie die Permissions zu ändern sind. Augenscheinlich ist dieser Bereich derzeit in Bewegung.
Mit Netz gibt es eine Reihe von Forumsbeiträgen und Blogartikeln, die die Änderungen im Bereich HAL, die mit neueren Gnome-Versionen in die Ubuntu-Distribution gelangt sind, diskutieren (z.B. auf Superuser.com oder Gnome.org). Eine Lösung beschreibt der zitierte Artikel auf Gnome.org. Wenn er im Allgemeinfall auch nicht für Jedermann geeignet sein dürfte, passt er auf den ersten Blick genau auf mein Problem; leider nur auf den ersten Blick. Dabei geht es ja nicht darum, den Normalfall zu ändern, sondern nur die Zugriffsrechte auf einem bestimmten Stick.
Die Ansatz lautet zusammengefasst: Eintragen der gewünschten Mount-Optionen in /etc/fstab.
Dazu muss ich zunächst den Stick eindeutig identifizieren können; das funktioniert über seine UUID. Die bekomme ich wie folgt:
- Mit eingestecktem Stick liefert cat /proc/mounts folgende Ausgabe (Ausschnitt):
/dev/sdb1 /media/KINGSTON vfat …. fmask=0022 …. - Mittels ls -la /dev/disk/by-uuid/ findet ich die UUID:
2214-16EE -> ../../sdb1 - Ein geeigneter Eintrag in /etc/fstab macht den Stick mountable:
/dev/disk/by-uuid/2214-16EE /media/KINGSTON vfat rw, nosuid, nodev, relatime, uid=1000, gid=1003, fmask=0077, dmask=0077, shortname=mixed, utf8, flush, errors=remount-ro 0 0
(Alles in eine Zeile, keine Leerzeichen nach den Kommata)
Soweit so gut. Leider ist der Stick damit nur mit root-Rechten einzuhängen. Bei einem Wechselmedium ist das nicht brauchbar. Eine Lösung habe ich dafür bislang nicht. Also habe ich mich weiter auf die Suche gemacht, um die Default Permissions zu ändern.
Die weitere Recherche zeigt, dass die Default Permissions fest einkompiliert sind :-(. Das auf der zitierten Seite vorgeschlagene Patchen und neu Kompilieren kommt für mich nicht in Frage.
Hiermit endet das Thema, soweit es den Titel dieses Artikels angeht. Leider unbefriedigend, aber vielleicht hat ein Leser mehr herausgefunden. (Der Vollständigkeit halber sei erwähnt, dass auch mit dem gconf-editor das Ändern von /system/storage/default_options/vfat/mount_options keine Wirkung gezeigt hat.)
Für mich bleibt derzeit nur ein Weg: Zurück an den Ursprung des Problems, zurück zu ssh-add. Die Manpage ist in Bezug auf die Zugriffsrechte sehr eindeutig: “Identity files should not be readable by anyone but the user. Note that ssh-add ignores identity files if they are accessible by others.”
Meine Lösung besteht nun darin, dass ich zwar ssh-add verwende, die Keys aber zuvor kurz nach /tmp kopiere und von dort lese; mit richtigen Zugriffsrechten, versteht sich. Klingt umständlich, ist es für mich aber nicht, weil der fragliche Befehl Teil eines Skripts ist. Das Kopieren nach /tmp und anschließende Löschen stellt also keinen Mehraufwand dar.
Für konstruktive Vorschläge, wie ich das eigentliche Problem elegant in den Griff bekomme, bin ich trotzdem dankbar!