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.
Ubuntu 12.04 „Precise Pangolin“
Ubuntu 10.04 „Lucid Lynx“
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.
Folgendes Paket muss installiert [1] werden:
curlftpfs (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install curlftpfs
sudo aptitude install curlftpfs
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
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
Wenn man eine sichere Verbindung mit Hilfe von curlftps benutzen möchte, dann muss man lediglich das Protokoll, welches man benutzen möchte, angeben.
curlftpfs -o ssl ftp://Benutzername:Passwort@ftp-server.de:Port/pfad_auf_dem_server/ ~/mnt
Der Port muss mit angegeben werden, wenn er vom Standardport 990 abweicht. Ansonsten ist er nicht zwingend erforderlich.
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.
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).
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.
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
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