Linux (Debian/Ubuntu/Mint): FTP-Verzeichnis ins lokale Dateisystem einhängen
Während der Entwicklungsarbeit an einem Web-Angebot - gerade wenn kein Versionskontrollsystem wie etwa Git oder Subversion zur Übertragung auf einen entfernten Server verwendet wird - finden üblicherweise zahlreiche Lese- und Schreibzugriffe per FTP statt. Die Vorgehensweise sieht dann in der Regel so aus, dass aktualisierte Dateien und Verzeichnisse bei Bedarf vom lokalen Speicherort mit einem, wie auch immer gearteten, FTP-Client hinüberkopiert werden.
Entsprechende Kernelfunktionen vorausgesetzt (ab 2.6.14 ist das notwendige FUSE-Modul enthalten), geht dies aber auch zumindest unter Linux bequemer. In das lokale Dateisystem lassen sich an einem beliebigen Punkt ganze FTP-Verzeichnisbaumstrukturen einfach einhängen - man spricht hier auch vom "Mounten". Der Vorteil: Jeder Schreib- und Lesevorgang, der unterhalb des Mountpoints (Einhängeort) stattfindet, geht transparent direkt auf den Server. Dateien können in der bevorzugten Editorsoftware vor Ort bearbeitet und beim Speichern nahtlos aktualisiert werden; die Verwendung eines zusätzlichen FTP-Clients ist dann nicht mehr notwendig.
Grundvoraussetzung für diese Funktion ist das Paket
curlftpfs, das die Bibliotheken
libfuse und
fuse-utils enthält und in der Shell - falls nicht schon vorhanden - per APT folgendermaßen installiert wird:
sudo apt-get install curlftpfs
Nehmen wir an, unser gewünschter Mountpoint für das FTP-Verzeichnis ist
/home/benutzername/ftpserver. Das
ftpserver-Directory muss notwendigerweise bereits bestehen; sollte dies nicht der Fall sein, ist zuerst dessen Erstellung per
mkdir erforderlich. Weiterhin gehen wir davon aus, der FTP-Username ist
meinname, das Passwort
meinpasswort, der Name des Servers schließlich
www.kotori.de Um den Mountvorgang zu initiieren, genügt das Kommando:
curlftpfs meinname:meinpasswort@www.kotori.de /home/benutzername/ftpserver -o allow_other,disable_eprt
Dies ist allerdings eine ungesicherte Verbindung, die theoretisch das Mitlesen von Daten ermöglicht. Um eine verschlüsselte Verbindung per SSL/TLS aufzubauen (sofern der FTP-Server dies unterstützt), benutzen Sie:
curlftpfs meinname:meinpasswort@www.kotori.de /home/benutzername/ftpserver -o allow_other,disable_eprt,tlsv1
Wenn die Arbeit auf dem FTP-Server beendet ist und Sie das Verzeichnis wieder unmounten/aushängen möchten, verwenden Sie dazu nicht
umount - dies wird nicht funktionieren. Die korrekte Vorgehensweise ist:
fusermount -u /home/benutzername/ftpserver
Automatisches Mounten per fstab
Den Mountvorgang kann man übrigens auch für jedes Hochfahren des Betriebssystems automatisieren. Hierzu ist mit Superuser-Rechten eine Änderung an
/etc/fstab nötig; der obere Eintrag ist für ungesichertes, der untere für verschlüsseltes Mounten vorgesehen:
curlftpfs#meinname:meinpasswort@www.kotori.de /home/benutzername/ftpserver fuse rw,uid=1000,umask=0777,user,suid,allow_other,exec,auto,_netdev,utf8 0 1
curlftpfs#meinname:meinpasswort@www.kotori.de /home/benutzername/ftpserver fuse rw,uid=1000,umask=0777,user,suid,allow_other,exec,auto,_netdev,utf8,tlsv1 0 1
In der Datei
/etc/fuse.conf kommentieren wir folgende Zeile aus (einfach die Raute davor entfernen):
user_allow_other
Dann ist nur noch die
/etc/rc.local am Ende (vor der
exit 0-Angabe) entsprechend um das eigentliche Mountkommando zu erweitern:
mount -a
Anschließend wird das Verzeichnis beim Linux-Start selbsttätig eingehängt. Das Unmounten funktioniert bei Bedarf dann wieder genauso wie oben bereits beschrieben.