So verwenden Sie den FTP-Befehl unter Linux

Das File Transfer Protocol, kurz FTP, mag zwar ein Relikt aus früheren Zeiten der Netzwerkkommunikation sein, aber es erfüllt seine Aufgabe immer noch zuverlässig. Obwohl es nicht die Sicherheitsstandards moderner Protokolle erreicht, ist es in bestimmten Situationen weiterhin relevant. Hier erfahren Sie, wie Sie es nutzen können.

Achtung: FTP sollte nicht über das Internet genutzt werden

Lassen Sie uns gleich zu Beginn eine wichtige Warnung aussprechen: Das File Transfer Protocol, das in den frühen 1970er Jahren entwickelt wurde, wurde ohne besondere Berücksichtigung von Sicherheitsaspekten konzipiert. Es verzichtet vollständig auf Verschlüsselung. Sowohl die Anmeldedaten, wie Benutzername und Passwort, als auch die übertragenen Dateien werden im Klartext gesendet. Das bedeutet, dass jeder, der den Datenverkehr abfängt, Ihre sensiblen Informationen einsehen kann. Trotz dieser Einschränkungen hat FTP jedoch immer noch seine Daseinsberechtigung.

Wenn Sie Dateien innerhalb eines geschützten Netzwerks verschieben, sollten Sie relativ sicher sein – vorausgesetzt, niemand im Netzwerk spioniert die Datenpakete aus und belauscht sensible Dokumente. Wenn Ihre Dateien keine vertraulichen Informationen enthalten, ist die Verwendung von FTP in einem internen Netzwerk eine praktikable Option. Linux bietet standardmäßig das Befehlszeilenprogramm ftp für solche Aufgaben.

Es ist jedoch absolut abzuraten, den `ftp`-Befehl für den Zugriff auf externe Ressourcen über das Internet zu verwenden. Nutzen Sie stattdessen das Befehlszeilenprogramm sftp, das auf dem sicheren SSH File Transfer Protocol basiert. Im folgenden Tutorial werden wir beide Programme näher betrachten.

Um zu verdeutlichen, warum die Verwendung von FTP über das Internet riskant ist, sehen Sie sich den folgenden Screenshot an. Er zeigt ein FTP-Passwort im Klartext. Ein Angreifer im Netzwerk oder auf dem Weg zum FTP-Server könnte leicht erkennen, dass das Passwort „MySecretPassword“ lautet.

Die fehlende Verschlüsselung ermöglicht es Angreifern zudem, Dateien während der Übertragung zu verändern.

Der `ftp`-Befehl

Unter der Voraussetzung, dass Sie über einen gültigen Account auf einem FTP-Server verfügen, können Sie sich mit folgendem Befehl anmelden. Ersetzen Sie dabei die angegebene IP-Adresse durch die des Servers, mit dem Sie sich verbinden möchten.

ftp 192.168.4.25

Wichtig: Verwenden Sie den `ftp`-Befehl nur für Verbindungen zu Servern in einem vertrauenswürdigen lokalen Netzwerk. Für die Übertragung von Dateien über das Internet nutzen Sie bitte den `sftp`-Befehl, der weiter unten erläutert wird.

Der FTP-Server antwortet mit einer Willkommensnachricht. Der genaue Wortlaut kann variieren. Anschließend werden Sie aufgefordert, den Benutzernamen einzugeben.

Beachten Sie, dass neben der IP-Adresse des Servers auch Ihr Linux-Benutzername angezeigt wird. Wenn dieser mit dem Benutzernamen auf dem FTP-Server übereinstimmt, können Sie einfach die Eingabetaste drücken. Andernfalls geben Sie den entsprechenden Benutzernamen ein und bestätigen mit der Eingabetaste.

Anmeldung auf dem FTP-Server

Als Nächstes werden Sie zur Eingabe des Passworts aufgefordert. Tippen Sie es ein und bestätigen Sie mit Enter. Ihr Passwort wird dabei nicht auf dem Bildschirm angezeigt. Sobald Benutzername und Passwort verifiziert wurden, sind Sie mit dem FTP-Server verbunden.

Sie erhalten die Eingabeaufforderung `ftp>`.

Dateien anzeigen und herunterladen

Um sich einen Überblick über die Dateien auf dem FTP-Server zu verschaffen, verwenden Sie den Befehl `ls`. In unserem Beispiel sehen wir die Datei `gc.c`. Diese möchten wir auf unseren lokalen Computer herunterladen.

Der Befehl zum Herunterladen einer Datei lautet `get`. Unser Nutzer gibt also `get gc.c` ein. Das Format ist: `get`, ein Leerzeichen, und der Name der Datei.

Der FTP-Server antwortet mit der Übertragung der Datei auf den lokalen Rechner und bestätigt dies. Dateigröße und Übertragungsdauer werden angezeigt.

ls
get gc.c

Um mehrere Dateien auf einmal herunterzuladen, verwenden Sie `mget` (multiple get). Sie werden für jede Datei einzeln um eine Bestätigung gebeten (mit „y“ für ja oder „n“ für nein).

Bei einer großen Anzahl von Dateien wäre dies umständlich. Daher werden verwandte Dateien auf FTP-Servern üblicherweise als einzelne `tar.gz`- oder `tar.bz2`-Archive gespeichert.

mget *.c

Dateien auf den FTP-Server hochladen

Abhängig von den Berechtigungen Ihres FTP-Accounts können Sie möglicherweise Dateien auf den Server hochladen. Der Befehl hierfür ist `put`. In unserem Beispiel lädt der Benutzer die Datei `Songs.tar.gz` hoch.

put Songs.tar.gz

Wie zu erwarten, gibt es auch hier einen Befehl zum gleichzeitigen Hochladen mehrerer Dateien: `mput` (multiple put). Ähnlich wie bei `mget` müssen Sie jede Datei einzeln bestätigen.

Das Argument für das Ablegen von Dateien in Archiven gilt hier genauso wie beim Herunterladen. Unser Benutzer lädt mehrere `.odt`-Dateien mit folgendem Befehl hoch:

mput *.odt

Verzeichnisse erstellen und wechseln

Wenn Ihr FTP-Account es erlaubt, können Sie Verzeichnisse anlegen. Der Befehl dafür ist `mkdir`. Wichtig ist: Alle Verzeichnisse, die Sie mit `mkdir` erstellen, werden auf dem FTP-Server angelegt, nicht auf Ihrem lokalen Rechner.

Zum Wechseln zwischen Verzeichnissen nutzen Sie `cd`. Die Eingabeaufforderung `ftp>` zeigt jedoch nicht das aktuelle Verzeichnis an. Mit dem Befehl `pwd` (print working directory) können Sie sich anzeigen lassen, wo Sie sich befinden.

In unserem Beispiel erstellt der Benutzer ein Verzeichnis namens „music“, wechselt hinein, prüft seinen Standort mit `pwd` und lädt eine Datei in dieses Verzeichnis hoch.

mkdir music
cd music
pwd
put songs.tar.gz

Um schnell in das übergeordnete Verzeichnis zu wechseln, verwenden Sie `cdup`.

cdup

Zugriff auf den lokalen Computer

Um das Verzeichnis auf Ihrem lokalen Rechner zu wechseln, können Sie `lcd` an der `ftp>`-Eingabeaufforderung verwenden. Es kann jedoch leicht passieren, dass Sie den Überblick verlieren. Eine praktischere Methode ist die Verwendung des `!`-Befehls.

Der `!`-Befehl öffnet eine Shell auf Ihrem lokalen Rechner. Hier können Sie alles tun, was Sie auch in einem normalen Terminal-Fenster tun könnten. Wenn Sie `exit` eingeben, kehren Sie zur `ftp>`-Eingabeaufforderung zurück.

Unser Benutzer hat den `!`-Befehl benutzt, eine Shell geöffnet, mit `ls` die Dateien angezeigt und ist dann mit `exit` zur `ftp>`-Eingabeaufforderung zurückgekehrt.

!
ls
exit

Dateien umbenennen

Zum Umbenennen von Dateien auf dem FTP-Server nutzen Sie den `rename`-Befehl. In unserem Beispiel benennt der Nutzer eine Datei um und zeigt mit `ls` die aktuelle Verzeichnisstruktur an.

rename songs.tar.gz rock_songs.tar.gz
ls

Dateien löschen

Zum Löschen von Dateien auf dem FTP-Server verwenden Sie den Befehl `delete`. Um mehrere Dateien zu löschen, nutzen Sie `mdelete`. Sie werden bei jeder Datei zur Bestätigung aufgefordert („y“ oder „n“).

In diesem Beispiel listet der Benutzer zunächst die Dateien auf und löscht dann zuerst eine einzelne Datei und danach alle mit der Endung „.o“.

ls
delete gc.o
mdelete *.o

Der `sftp`-Befehl

Die 192.168-Adresse des FTP-Servers in den obigen Beispielen ist eine interne IP-Adresse, auch als private IP-Adresse bezeichnet. Wie anfangs erwähnt, sollte der `ftp`-Befehl nur in internen Netzwerken genutzt werden.

Für Verbindungen zu externen oder öffentlichen FTP-Servern nutzen Sie den `sftp`-Befehl. Unser Benutzer verbindet sich mit einem SFTP-Account namens „demo“ auf dem öffentlichen FTP-Server `test.trebex.net`.

Nach dem Verbindungsaufbau wird darauf hingewiesen, dass die Authentizität des Hosts nicht überprüft werden kann. Das ist normal bei der ersten Verbindung zu einem neuen Host. Man bestätigt dies mit „y“.

Da der Benutzername („demo“) bereits in der Befehlszeile übergeben wurde, wird er nicht mehr abgefragt. Es wird lediglich das Passwort benötigt. Nach der Eingabe des korrekten Passworts, erhält man die Eingabeaufforderung `sftp>`.

sftp [email protected]

Die meisten der oben gezeigten FTP-Befehle funktionieren in einer SFTP-Sitzung genauso, mit folgenden Ausnahmen:

  • Löschen einer Datei: `rm` (FTP nutzt `delete`)
  • Löschen mehrerer Dateien: `rm` (FTP nutzt `mdelete`)
  • Wechsel in das übergeordnete Verzeichnis: `cd ..` (FTP nutzt `cdup`)

In unserem Beispiel nutzt der Benutzer `ls`, um die Dateien anzuzeigen, wechselt mit `cd` in das Verzeichnis „pub“ und lässt sich mit `pwd` sein aktuelles Verzeichnis anzeigen.

Es gibt auch andere Optionen für die Dateiübertragung unter Linux, insbesondere `scp` (secure copy). Wir haben uns hier jedoch auf FTP und SFTP konzentriert. In den jeweiligen Anwendungsfällen sind diese beiden Befehle eine gute Wahl für die Speicherung und den Abruf von Dateien.