Seitdem ich die Anleitung ins Internet gestellt habe sind viele E-Mails mit einem Danke im
Text oder Betreff eingegangen. Jedoch gab es beim einen oder anderen auch kleine Problemchen,
welche allerdings sehr schnell behoben werden konnten. Mal lag es am Überlesen von mir
angegebenen Schaltern oder ich selbst hatte einen Fehler in meiner Dokumentation
übersehen.
Für jeden Hinweis auf einen vorhandenen Fehler bin sicherlich nicht nur ich dankbar, auch
zukünfige Leser dieser Seiten werden es begrüßen, eine fehlerfreie Doku zu haben. Daher bitte
ich alle Leser, mich auf Fehler hinzuweisen oder bei kleinen oder größeren Problemen einfach
bei mir nachzufragen. Soweit ich helfen kann werde ich dies auch tun.
Die folgenden Beiträge sind Antworten auf aufgetretene Probleme, welche mit der gegebenen
Antwort behoben werden konnten. Die Texte habe ich etwas gekürzt und angepasst soweit es
erforderlich war.
Chris: Mehr als zwei Clients über eine IP trotz
Restriktion.
Obwohl ich denn Schalter -C 2
benutzt habe können sich mehr als 2 Clients mit der
selben IP einloggen. Das versteh ich nicht.
Antwort: Nur im standalone Modus funktioniert die
Begrenzung der User mit dem Schalter -C
. Wird der Server vom inetd
aus
verwaltet, wirkt er nicht. Die Lösung für das Problem ist, den Server mit einem Script beim
Systemstart, oder – wenn so gewollt – von Hand an der Konsole zu starten.
Damit ich mich hier nicht mit fremden Federn schmücke: Chris hat die Lösung für das Problem
selbst herausgefunden, mich dann darüber informiert.
Markus: Meldung »Disk full« obwohl noch massig Platz
vorhanden ist.
Ich kann mich wunderbar einloggen und auch ohne weiteres lesen und Ordner erstellen.
Allerdings kann ich keine Dateien hochladen. Es kommt immer schlicht und einfach die
Fehlermeldung, dass die Platte voll sei:
ftp> put /home/zocker/HLDS\ FILES/cs_15_full.tar.gz /upload local: /home/zocker/HLDS FILES/cs_15_full.tar.gz remote: /upload 229 Extended Passive mode OK (|||53489|) 553 Disk full - please upload later
Die Platte ist aber definitiv nicht voll. Hab sogar bereits mehrere Dateien gelöscht –
ohne Erfolg. Immer noch diese Fehlermeldung, auch bei mehreren Versuchen von mehreren
verschiedenen Betriebsystemen und FTP-Clients aus.
Antwort:
Die Angabe "-k 80" bewirkt, dass von FTP-Usern nichts mehr hochgeladen werden kann
wenn die Platte bis zu 80% belegt ist.
Wie sie im Nachhinein tatsächlich herausgestellt hat war die Platte bereits zu 91% belegt
gewesen.
Man kann an der Konsole herausfinden, wieviel Prozent der einzelnen gemounteten Partitionen
belegt sind. Einfach den Befehl df -h
aufrufen und die Ausgabe anschauen. Bei einem
meiner Rechner sah die Ausgabe so aus:
[thomas@fishbone thomas]$ df -h Dateisystem Größe Benut Verf Ben% Eingehängt auf /dev/sda3 881M 741M 95M 89% / /dev/sda1 854M 462M 393M 55% /mnt/windows
Da auf der Systempartition bereits 89% belegt sind könnte kein FTP-User was
hochladen.
Je größer die Partitionen sind desto mehr Platz wird natürlich »verschenkt« wenn es sich um
die letzten 20% handelt. Bei 100 Gig wären es 20 Gigabyte freier Platz und trotzdem gibt der
FTP-Client die Meldung vom Pure-FTPd weiter und meldet, dass die Platte voll sei.
Enni: Der Server bleibt beim Starten hängen.
Ich habe als Newbie nach deiner Anleitung Pure-FTPd installiert. Nur das pure-ftp schon in
der SuSE-Distribution 8.1 enthalten war. Nun bin ich an dem Punkt angelangt an dem ich den
Befehl pure-ftpd -j -l puredb:/etc/pureftpd.pdb
eingegeben hatte.
Nun mein Problem: Rr bleibt da hängen, und ich kann die Aktion nur mit STRG+C abbrechen. Was mache ich falsch?
Antwort:
Er bleibt nicht »hängen«, sondern du hast den Server mit dem Aufruf an der Konsole gestartet.
Da du ihm nicht mitgeteilt hast, dass er im Hintergrund starten soll, blockiert er jetzt die
Konsole.
Die Lösung ist folgendes:
pure-ftpd -j -l puredb:/etc/pureftpd.pdb &
Dann läuft der Server wegen dem
&
im Hintergrund und nicht »auf der Konsole«. Dieser Tipp greift auch bei
anderen Programmen unter Linux.
Der Pure-FTPd hat allerdings einen Schalter für sowas. Der korrekte Aufruf würde daher
lauten:
pure-ftpd -B -j -l puredb:/etc/pureftpd.pdb
Wie man der Liste der Schalter entnehmen
kann wird durch den Schalter -B der Server im standalone Modus
im Hintergrund (daemonized) gestartet.
Holger: Wie stell ich es am bloedsten an, dass
mehrere virtuelle Benutzer auf ein und das selbe Verzeichnis außerhalb ihres
Verzeichnisses zugreifen können?
Beispiel: /home/ftp/a
und /home/ftp/b
sollen auf /home/shared/
zugreifen können. Symbolische Links sind keine Lösung da dann die Meldung file/directory
not found
erscheint. Der Readme folgend habe ich Pure-FTPd mit
--with-virtualchroot
kompiliert, nun erscheint die Meldung permission
denied
.
Antwort:
Da die Benutzer chrooted sind unterbindet der Server die Funktionalität des symbolischen
Links. Es ist nur das erreichbar, was sich nicht außerhabl des base directorys (dem
home directory des Benutzers) befindet. Auch nicht mittels einem symbolischen Link.
Aber alle modernen Betriebssysteme können lokale Verzeichnisse an mehreren Orten mounten.
Dadurch erhält man eine exakte Kopie des Verzeichnisses im Benutzerverzeichnis. Hier die
Befehlsaufrufe für die unterschiedlichen Betriebssysteme (entnommen der originalen
PureFTPd-FAQ:
* Linux : mount --bind /var/incoming /home/john/incoming mount --bind /var/incoming /home/joe/incoming * Solaris : mount -F lofs /var/incoming /home/john/incoming mount -F lofs /var/incoming /home/joe/incoming * BSD : mount_null /var/incoming /home/john/incoming mount_null /var/incoming /home/joe/incoming
Anmerkung: In den FAQ der offiziellen Homepage wird die Option
--with-virtualchroot
ebenfalls als Lösung angeboten, dies scheint aber nicht 100%ig
zu funktionieren. Die Lösung für das Problem hat Holger selbst herausgefunden, ich habe sie
ledliglich hier reingestellt.
Michael: Ich habe auf meinen FTP-Server Daten
hochladen lassen. Diese habe ich anschließend lokal auf dem Rechner in ein anderes
Verzeichnis verschoben so das wieder das Verzeichnis des Users frei war. Nun kann er zwar
Dateien hochladen, die sind dann aber nach dem Upload gleich wieder verschwunden. Er hat sich
schon ausgeloggt gehabt, inzwischen wurde der FTP-Server auch schon mehrfach neu gestartet.
Was ist da los?
Antwort:
Wenn für den Benutzer eine Quota (Beschränkung des Speicherplatzes) eingerichtet worden ist,
so werden die Informationen über den Up- und Download in der Datei .ftpquota
in
seinem home directory gespeichert. Wenn die Daten lokal verschoben werden bekommt das der
FTP-Server nicht mit und ändert natürlich auch nicht die Informationen in der
.ftpquota
. Daher immer die Loginnachricht beachten:
230-Benutzer zauder hat Gruppenzugang zu: 65534 230-OK. Aktuelles Verzeichnis ist /. 230 7553 Kilobyte benutzt (73%) - erlaubt: 10240 Kb.
Obwohl das Benutzerverzeichnis leer ist glaubt der FTP-Server, es seien 73% vom für den
Benutzer verfügbaren Speicherplatz belegt. Nachdem man die .ftpquota
gelöscht hat
steht wieder der volle Speicherplatz zur Verfügung.
Da ich als Distribution Debian GNU/Linux verwende, kann ich herzlich wenig über die
Konfigurationsdatei von SuSE schreiben. Aber es gibt eine Lösung: Auf Olaf Stumm's Homepage wird diese Konfigurationsdatei
behandelt.
Bei der Navigation den Pure-FTPd auswählen und die auf deutsch übersetzte Konfigurationsdatei
anschauen. Sie sollte eigentlich alle Fragen beantworten können – sofern es um
Konfigurationsparameter geht.
Auf seiner Seite sind (im Gegensatz zu meiner Page) die Informationen auch als .pdf zum
Download erhältlich. Einfach mal vorbeischauen, auch wenn man kein SuSE am Laufen hat.