ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

curlftpfs

Ausbaufähige Anleitung

Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.


Anmerkung: Beispiele und Programmoptionen müssten auf ihre Gültigkeit überprüft werden.

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Wiki/Icons/terminal.png curlftpfs {en} 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 [1] werden:

  • curlftpfs (universe)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install curlftpfs 

sudo aptitude install curlftpfs 

Benutzung

Vor dem Ausführen von curlftpfs muss FUSE eingerichtet sein [2] 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

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 [3] ü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 Server-String in Hochkommas schreiben:

curlftpfs '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.

Beispiel - FTP über implizites TLS

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

Hinweis:

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

Beispiel - 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 Serverzertifikat 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 Clientzertifikat existiert und deshalb es nicht geschickt wird (natürlich kann auch mit der Option cert=pfad_und_zertifikat eines mitgegeben werden).

Wenn das Serverzertifikat 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 Serverzertifikates unterbunden werden.

Beispiel - Einbinden von FTPS aus einer FritzBox, an der neben USB z.B. auch noch ein 1oder1 WebDavs Laufwerk eingebunden sein kann (unter 10.04)

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

Ein Serverzertifikat 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 alsauch 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 gemountet 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 Format

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

Für das obige Beispiel müsste man in die .netrc also Folgendes schreiben

machine ftp-server.de
login Benutzername
password Passwort

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

chmod 600 ~/.netrc 

wird die Datei nur nur 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 

ubuntuusers.local › Wikicurlftpfs