Xmlftp

Aus II-Wiki
Wechseln zu: Navigation, Suche

Die Idee

Es gibt bereits viele verschiedene FTP Server für Linux, die alle ihre Vorteile und Nachteile haben. Aber einige Sachen sind ihnen allen gemeinsam:

  • schlecht und unübersichtliche Konfigurationsdateien
  • Virtuelle Benutzer können gar nicht oder nur mit hohem Aufwand angelegt werden
  • Sie Arbeiten nur auf realen Verzeichnissen
  • Symlinks werden nicht verfolgt
  • Man kann entweder die ganze Festplatte freigeben oder einen Verzeichnisszweig aber nicht verschiedene Verzeichnisse in unterschiedlichen Verzeichnisspfaden

Genau an diesen Kritikpunkten setzt das XMLFTP Projekt an

Aktuelle Umsetzung der Idee

Der Server ist zur Zeit in C geschrieben und unter Linux lauffähig.
Bis jetzt wurden keine nicht standardmäßigen Bibliotheken genutzt, was eine hohe Kompatibilität und Portierbarkeit ermöglichen soll. Auch wenn der Server vorrangig für Linux gedacht wahr und ist, so ist eine Umsetzung auf ein anderes Betriebssystem durchaus machbar und denkbar.
Die aktuelle Entwicklung geschieht zur Zeit unter Linux mit der Softwareumgebung KDevelop und dem freien Kompiler gcc.

Geplante Features

Feature Implementiert Komentar
  • Virtuelle Benutzer
Ja Passwörter sind noch im Klartext gespeichert
  • Virtuelle Verzeichnisse
Ja Nach dem Upload von Dateien wird der Verzeichnisbaum noch nicht erneuert
  • Virtuelle Dateien
Ja

Die Idee ist es dynamisch generrierte Dateien anzubieten. Das ganze wird realisiert über eine Pluginarchitektur so kann man selber entscheiden wie diese Datei erstellt werden soll.

  • XML Konfigurations Datei
Ja Features wie Benutzer,Verzeichnisbäume und virtuelle Dateien sind bereits in den Konfigurationsdateien.
  • Datei Berechtigungen
Ja Berechtigungen werden überprüft und angewendet.
  • IP-Sperre
Ja Nach langer Entwicklungszeit ist auch dieses Feature endlich implementiert.

Implementierte FTP Kommandos

Kommando Implementiert Kommentar
ABOR Ja
ACCT Nein
APPE Nein
CDUP Ja
CWD Ja
DELE Ja
LIST Ja
HELP Nein
MDTM Nein
MKD Ja
MODE Ja
NLST Nein
NOOP Ja
PASS Ja
PASV Ja
PORT Ja
PWD Ja
QUIT Ja
RETR Ja
REIN Nein
RMD Ja
RNFR Ja
RNTO Ja
STAT Nein
SITE Nein
SIZE Ja
STOR Ja
STOU Nein
STRU Nein
SYST Ja
TYPE partiell Wird angenommen hat aber noch keine Auswirkungen auf den Dateitransfer
USER Ja

Weiterführende Links