File System In Userspace, kurz
FUSE, ist ja eine sehr nützliche Sache. Ohne weitere Kernelmodule laden zu müssen, kann man verschiedene Medien ins Dateisystem einhängen. Verbreitet sind z.B. das NTFS-3G-Modul für den performanten Zugriff auf NT File Systeme, EncFS für verschlüsselte Partionen, GMailFS zum nutzbarmachen des eigenen Gmail-Kontos als Datenhalde, u.v.m.
Ich nutze auf einigen Kisten
SSHFS zum Mounten entfernter Verzeichnisse über eine SSH-Verbindung. In Verbindung mit dem Automounter aus dem Kernel, kann man damit sehr einfache Backupscripte schreiben, da mit
Autofs die Verbindung nur dann aufgebaut wird, wenn sie gebraucht wird.
Zum Konfigurieren von Autofs muss man die autofs.master Datei bearbeiten, die meist in /etc/autofs liegt:
/path/to/mount/point /etc/autofs/auto.sshfs --ghost
--ghost sorgt dafür, dass alle Mountpointverzeichnisse schon angelegt werden, auch wenn dort noch nichts gemountet wurde.
Jetzt kann man die Einstellungen für die einzelnen Verzeichnisse anlegen:
autobackup -fstype=fuse,uid=1001,gid=1005,rw,allow_other,nodev,nonempty,noatime,port=124,BatchMode=yes,IdentityFile=/home/testuser/.ssh/id_rsa sshfs#testuser@server.test.de:/home/testuser/backupdir
autobackup ist ein selbstgewählter Mountpointname.
BatchMode=yes verhindert die Passwortabfrage, die der Automounter nicht alleine beantworten kann, so dass stattdessen der Publickey genutzt wird, dessen zugehöriger Privatekey mit
IdentifyFile angegeben wird. Falls SSH nicht auf einem Standardport liegt, hilft der Parameter
port.
Für viel Kopfzerbrechen sorgt oft das Mounten im Userspace, wo auch Nichtsuperuser zugreifen dürfen. Denn es reicht nicht die UID und GID zu setzen, sondern man muss noch ein
allow_other in die Optionen schreiben.
You need allow_other if you want users other than the owner to access a mounted fuse.