21.3 FTP-Server
Der Zugriff auf FTP-Inhalte ist mit Ubuntu spielend einfach. Damit ist nicht nur der triviale Download von Inhalten (wie zum Beispiel Ubuntu-ISOs über einen Browser durch Angabe einer URL der Form ftp://) von einem öffentlichen Server gemeint, sondern auch das Login auf einem nichtöffentlichen Server, um beispielsweise HTML-Content abzulegen.
Der Zugriff ist sowohl unter KDE als auch unter GNOME mit dem jeweiligen System-Browser möglich, also Dolphin (oder Konqueror) oder Nautilus. Geben Sie die Adresse des Servers, mit dem Sie per FTP Daten austauschen möchten, auf der Adresszeile des Browsers ein. Diese ist im Nautilus per Default nicht sichtbar. Sie erreichen die Adresszeile über die Tastenkombination + . Im Falle eines nichtöffentlichen Servers werden nun der Login-Name sowie das Passwort abgefragt – fertig (siehe Abbildung 21.3).
Abbildung 21.3 FTP-Server nutzen mit »Nautilus«
Das Hin- und Herkopieren erfolgt dann mit den browsereigenen Mitteln per Drag & Drop. Fans der Konsole schätzen an dieser Stelle die Möglichkeit, das File Transfer Protocol mit dem Befehl ftp auch von der Kommandozeile aus zu bedienen.
Dazu öffnen Sie mit ftp <Servername / IP> eine FTP-Verbindung zum entsprechenden Server. Mit get können Sie nun einzelne Dateien vom Server herunterladen, mit put hochladen. Die restlichen Befehle ähneln der alltäglichen Arbeit innerhalb einer Unix-Shell. Der FTP-Konsolen-Client kann schließlich mittels quit wieder verlassen werden.
Wesentlich bequemer loggen Sie sich aber über den Menüpunkt Orte • Verbindung zu Server im GNOME-Standardmenü auf einem FTP-Server ein. Hier müssen Sie lediglich den Dienstetyp FTP mit Zugangsbeschränkung auswählen.
21.3.1 ProFTP
Zur unkomplizierten Einrichtung eines einfachen FTP-Servers gibt es unter Ubuntu das Paket ProFTP, welches Sie gegebenenfalls nachinstallieren müssen (Paketname: proftp). Während der Installation werden Sie gefragt, ob das Programm als eigenständige Anwendung oder in Verbindung mit dem (x)inetd-Internet-Daemon gestartet werden soll. Befindet sich das letztgenannte Programm ohnehin schon auf Ihrem System, dann sollten Sie ProFTP mit (x)inetd verknüpfen. Anderenfalls wählen Sie den Punkt Servermodus.
Ob der ProFTP-Daemon läuft, erfahren Sie über folgendes Kommando:
ps ax | grep ftp
proftpd: (accepting connections)
Nun gilt es, den Zugang beispielsweise für den anonymen FTP-Zugang freizuschalten. Dazu müssen Sie die Konfigurationsdatei /etc/proftpd/proftpd.conf anpassen.
Im folgenden Beispiel soll das Verzeichnis /home/ftp, das während der Installation erstellt wurde, per Anonymous FTP exportiert werden. Die Benutzer sollen Leserechte, aber keine Schreibrechte für das Verzeichnis erhalten. Zunächst sind also die Rechte für das Verzeichnis zu setzen:
sudo chmod 775 -R /home/ftp/
Nun müssen Sie die Konfigurationsdatei anpassen. In dieser Datei finden Sie eine Beispielkonfiguration für einen anonymen Zugang, den ich hier explizit empfehlen möchte. Standardmäßig ist diese Konfiguration auskommentiert. Für einen rudimentären Zugang entfernen Sie mindestens die Kommentarzeichen in den folgenden Zeilen:
sudo gedit /etc/proftpd/proftpd.conf
# Auszug aus /etc/proftpd.conf
<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
MaxClients 10
DisplayLogin welcome.msg
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>
Abschließend müssen Sie den Internet-Superserver neu starten, damit die neue Konfiguration übernommen wird:
sudo /etc/init.d/openbsd-inetd restart
Manueller Verbindungstest
Für einen einfachen Test des Servers können Sie jetzt versuchen, sich von einer Kommandozeile aus mit dem FTP-Protokoll als Benutzer anonymous einzuloggen. Die Passwortabfrage kann einfach durch Drücken der -Taste übersprungen werden. Das folgende Beispiel zeigt einen Login auf einen Server mit der IP-Adresse 192.168.1.6 mit anschließendem Download einer Datei test.txt:
ftp 192.168.1.6
Connected to 192.168.1.10.
220 ProFTPD 1.3.1 Server (Debian) [::ffff:192.168.1.10]
Name (192.168.1.10:marcus): anonymous
...
ftp> dir
200 PORT command successful
150 Opening ASCII mode data connection for file list
-rw-r--r-- 1 ftp ftp 37 Nov 18 11:30 test.txt
-rw-r--r-- 1 ftp ftp 170 Feb 21 2008 welcome.msg
226 Transfer complete.
ftp> get test.txt
local: test.txt remote: test.txt
200 PORT command successful
150 Opening BINARY mode data connection for
test.txt (37 bytes)
226 Transfer complete.
37 bytes received in 0.00 secs (81.2 kB/s)
ftp> quit
221 Goodbye.
Die vom Benutzer eingegebenen Befehle sind im obigen Listing jeweils fett dargestellt.
21.3.2 FTP im Terminal nutzen
Mit Hilfe von ftp (File Transfer Protocol) können Sie Dateien innerhalb eines Netzwerks (zum Beispiel Internet) zwischen verschiedenen Rechnern transportieren. Da ftp über eine Menge Features und Funktionen verfügt, soll hier nur auf den »Hausgebrauch« eingegangen werden, und zwar darauf, wie Sie Daten von einem entfernten Rechner abholen und auf diesen transferieren. Zunächst müssen Sie sich auf dem Server einloggen. Dies geschieht üblicherweise mit ftp Server_Name.
Nachdem ftp eine Verbindung mit dem Server aufgenommen hat, werden Sie aufgefordert, Ihren Benutzernamen und anschließend das Passwort einzugeben. Wenn alles korrekt war, befindet sich vor dem Prompt ftp> und wartet auf weitere Anweisungen. Jetzt können Sie im Eingabeprompt Folgendes machen:
- gewünschtes Verzeichnis durchsuchen: cd, dir, lcd (lokales Verzeichnis)
- FTP-Parameter einstellen: type binary, hash, prompt
- Datei(en) abholen: get, mget
- Datei(en) hochladen: put, mput
- abmelden: bye oder exit
Natürlich bietet ftp weitaus mehr Befehle als diese an, aber alle aufzulisten, würde den Rahmen des Buchs sprengen. Im Folgenden soll der Umgang mit ftp anhand eines Beispiels erläutert werden. Zunächst loggen Sie sich per FTP auf einen Server ein:
ftp upload.meinserver.de
Connected to upload.meinserver.de.
220 Welcome to FTP service.
Name (upload.meinserver.de:hatt): <Mein Login>
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
Als Nächstes werden Sie sich wohl das Inhaltsverzeichnis ansehen wollen. Verwenden Sie den Befehl dir (der auf Linux-Systemen meistens dem Aufruf von [ls -l entspricht) zum Auflisten:
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x 9 1092 1091 4096 Dec 17 15:31 .
drwxr-xr-x 8 0 0 4096 Mar 07 2005 ..
drwxr-xr-x 5 1092 1091 4096 Sep 04 2001 OLD
drwxr-xr-x 3 1092 1091 4096 Sep 03 2001 counter
drwxr-xr-x 8 1092 1091 4096 Sep 02 2001 daten
Wollen Sie nun in ein Verzeichnis wechseln, so können Sie auch hier das schon bekannte Kommando cd verwenden. Ebenso sieht es aus, wenn Sie das aktuelle Arbeitsverzeichnis erfahren wollen, in dem Sie sich gerade befinden. Hier leistet das bekannte pwd seine Dienste.
Das aktuelle Verzeichnis auf dem lokalen Rechner können Sie mit dem Kommando lcd wechseln. Sie können übrigens auch die Befehle auf Ihrem lokalen Rechner verwenden, wenn Sie ein !-Zeichen davor setzen. Hierzu ein Beispiel, das die Befehle nochmals demonstriert:
ftp> pwd
257 "/htdocs"
ftp> cd daten
250 Directory successfully changed.
ftp> pwd
257 "/htdocs/daten"
ftp> !pwd
/home/hatt
ftp> lcd text
Local directory now /home/hatt/text
ftp>
Hier befinden wir uns auf dem Remote-Rechner im Verzeichnis daten, lokal sind wir mit lcd in das Verzeichnis text gewechselt.
Im entfernten Verzeichnis soll sich die Datei server.txt befinden, die wir auf den Server befördern wollen. Das geschieht mit dem Kommando get:
ftp> get server.txt
local: server.txt remote: server.txt
200 PORT command successful
150 Opening BINARY mode data connection
server.txt (3231 bytes)
226 Transfer complete.
Und schon haben wir die Datei server.txt auf den lokalen Rechner ins Verzeichnis text kopiert. Wollen Sie mehrere Dateien oder gar ganze Verzeichnisse holen, so verwenden Sie mget. Hierbei stehen Ihnen auch die Wildcard-Zeichen * und ? zur Verfügung. Damit mget Sie bei mehreren Dateien nicht jedes Mal fragt, ob Sie diese wirklich holen wollen, können Sie den interaktiven Modus mit prompt abstellen.
Haben Sie jetzt die Datei server.txt bearbeitet, und wollen Sie sie wieder hochladen, so verwenden Sie put (oder bei mehreren Dateien mput).
ftp> put server.txt
local: server.txt remote: server.txt
200 PORT command successful
150 Opening BINARY mode data connection
for server.txt
226 Transfer complete.
3231 bytes sent in 0.000106 secs
Damit sollten Sie erfolgreich Dateien ein- und auschecken können. Sie verlassen das System wieder mit quit, bye oder exit.
Bedenken Sie, dass ftp nicht ganz sicher ist, da Sie bei der Authentifizierung das Passwort unverschlüsselt übertragen.
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.