ubuntuusers.de

curlftpfs

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.


Anmerkung: Die letzte Programmversion ist von 2007. Das Programm wird nicht mehr weiter entwickelt.

Wiki/Icons/terminal.png curlftpfs 🇬🇧 ist ein FUSE-Modul, mit dem man entfernte Rechner über FTP in das eigene Dateisystem einbinden kann. Der Vorteil ist, dass man damit die Dateien und Verzeichnisse auf dem entfernten Rechner sehr komfortabel editieren, kopieren oder verschieben kann – genau wie die Dateien und Verzeichnisse auf den lokalen Festplatten. Dies erfordert auf dem Server einen FTP-Dienst. Die meisten Anbieter von Webspace ermöglichen den Zugriff über FTP.

Installation

Folgendes Paket muss installiert werden [1]:

  • curlftpfs (universe)

Paketliste zum Kopieren:

sudo apt-get install curlftpfs 

Oder mit apturl installieren, Link: apt://curlftpfs

Benutzung

Vor dem Ausführen von curlftpfs muss FUSE [2] eingerichtet sein und ein Verzeichnis erstellt werden, in welches der entfernte Rechner eingehängt werden soll. Außerdem muss der Benutzer, unter dem curlftpfs verwendet werden soll, als Mitglied der Gruppe fuse eingetragen werden. Die Datei /etc/fuse.conf muss für alle lesbar gemacht werden, z.B. mit dem Befehl [3]:

sudo chmod a+r /etc/fuse.conf 

Im Folgenden wird von ~/mnt als Verzeichnis für den entfernten Rechner ausgegangen.

Das Einhängen erfolgt im Terminal über folgenden Befehl:

curlftpfs Benutzername:Passwort@ftp-server.de/pfad_auf_dem_server/ ~/mnt 

Wenn Benutzername oder Passwort Sonderzeichen enthält, so kann man den Servernamen in Hochkommas schreiben:

curlftpfs 'Benutzername:Passwort@ftp-server.de/pfad_auf_dem_server/' ~/mnt 

Wenn man an einer Stelle einbindet, für die der User kein Schreibrecht hat, geht man wie folgt vor:

sudo curlftpfs -o allow_other Benutzername:Passwort@ftp-server.de/pfad_auf_dem_server/ ~/mnt 

Hinweis:

Wird kein Benutzername oder Passwort benötigt, so kann man nur ftp-server.de/pfad_auf_dem_server/ schreiben.
Sonderzeichen in Benutzernamen oder Passwort sollten gewandelt werden - ein @ bspw. durch %40.

Das Aushängen erfolgt analog zu den anderen FUSE-Modulen mit:

fusermount -u ~/mnt 

Verbinden mit SSL/TLS

Wenn man eine sichere Verbindung mit Hilfe von curlftps benutzen möchte, dann muss man lediglich das Protokoll, welches man benutzen möchte, angeben. Im Folgenden einige Beispiele.

FTP über implizites TLS

curlftpfs -o ssl ftp://Benutzername:Passwort@ftp-server.de:Port/pfad_auf_dem_server/ ~/mnt 

Der Port muss mit angegeben werden, wenn er vom Standard-Port 990 abweicht. Ansonsten ist er nicht erforderlich.

FTP über explizites TLS

curlftpfs -o ssl_control ftp://Benutzername:Passwort@ftp-server.de:Port/pfad_auf_dem_server/ ~/mnt 

Es kann durchaus sein, dass hier folgende Meldung auftritt:

"Error connecting to ftp: server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none"

Dann muss das Server-Zertifikat heruntergeladen:

echo | openssl s_client -connect example.org:443 | openssl x509 -out ~/serverzertifikat.pem  

und dieses dann curlftpfs mitgegeben werden. Außerdem musst curlftpfs mitgeteilt werden, dass kein eigenes Client-Zertifikat existiert und es deshalb nicht geschickt wird (natürlich kann auch mit der Option cert=pfad_und_zertifikat eines mitgegeben werden).

Wenn das Server-Zertifikat vorliegt, sollte folgender Befehl zum Verbinden verwendet werden:

curlftpfs -o ssl,cacert=~/serverzertifikat.pem,no_verify_peer ftps://Benutzername:Passwort@ftp-server.de:Port/pfad_auf_dem_server/ ~/mnt 

Falls das nicht gewünscht ist, kann auch mit der Option no_verify_hostname die Überprüfung des Server-Zertifikats unterbunden werden.

Einbinden einer FritzBox via FTPS

curlftpfs -o ssl,no_verify_peer,utf8,allow_other ftp://[Benutzername]:[Passwort]@[serverurl/startdir] [mountpoint] 

Ein Server-Zertifikat wird mit der Option no_verify_peer nicht geprüft und ist nicht erforderlich. Nur die direkte Angabe von utf8 als Option (also nicht codepage=xxx) gewährleistet hier, dass Umlaute in Dateinamen dann immer gleich dargestellt werden, egal ob von Linux oder Windows mit FTPS oder WebDAV darauf zugegriffen bzw. geschrieben wird (vorausgesetzt, die anderen halten sich auch an UTF-8, was sowohl mit davfs2 als auch jüngeren Windows-Versionen standardmäßig der Fall ist).

Eintragen in /etc/fstab

Es kann auch ein Eintrag in der fstab angelegt werden. Dadurch kann die FTP-Freigabe beispielsweise bei jedem Start automatisch eingebunden werden. Auch das manuelle Mounten kann dadurch vereinfacht werden.

Achtung!

Benutzername und Passwort werden im Klartext abgelegt! Dies stellt ein Sicherheitsrisiko dar, da /etc/fstab normalerweise systemweit lesbar ist! Deshalb sollte man die Methode mit ~/.netrc benutzen (siehe unten).

Der /etc/fstab-Eintrag hat das Format:

curlftpfs#Benutzername:Password@ftp-server.de /mnt/ftp fuse auto,user,uid=1000,tlsv1,allow_other,disable_eprt,proxy=http://proxy-server:3128 0 0

Sollte man eine WLAN-Verbindung benutzen, ist es sinnvoll, die Option _netdev anzuhängen. Damit wird erst eingehängt, wenn die Verbindung steht.

curlftpfs#Benutzername:Password@ftp-server.de /mnt/ftp fuse auto,user,uid=1000,tlsv1,allow_other,disable_eprt,_netdev 0 0

Speichern von Benutzername und Passwort in ~/.netrc

Wenn man den Benutzername und das Passwort nicht jedes mal neu eingeben will, kann man diese in der Datei ~/.netrc im Homeverzeichnis speichern. Die Datei hat das folgende Format:

machine [HOSTNAME]
login [USERNAME]
password [KENNWORT]

Für das obige Beispiel müsste man in die ~/.netrc Folgendes schreiben:

machine ftp-server.de
login Benutzername
password Passwort

Außerdem müssen noch die Rechte der Datei korrekt gesetzt werden. Nach dem Befehl:

chmod 600 ~/.netrc 

ist die Datei nur noch für den Benutzer lesbar. Jetzt kann man curlftpfs aufrufen, ohne sich jedes Mal an den Benutzernamen und das Passwort erinnern zu müssen:

curlftpfs ftp-server.de/pfad_auf_dem_server/ ~/mnt 

Diese Revision wurde am 7. September 2019 22:00 von BillMaier erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: ftp, Internet, Netzwerk