Xmlftp
Dokumentation für das XMLFTP Projekt
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 voranging für Linux gedacht wahr und ist, so ist eine Umsetzung auf ein anderes Betriebsystem 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 |
---|---|---|
|
Ja | Passwörter sind noch im Klartext gespeichert |
|
Ja | Nach dem Upload von Dateien wird der Verzeichnissbaum noch nicht erneuert |
|
Nein |
Die Idee ist es eventuell dynamisch generrierte Dateien anzubieten oder auch Links auf reale Dateien so zu virtualisieren. Das währe dann das I-Tüpfelchen auf der virtuellen Verzeichnisstrucktur |
|
partiell | Features wie Benutzer und Verzeichnisbäume sind bereits in den Konfigurationsdateien. Viele interne Sachen wie Ports und die Netzwerkinterfaces sind noch im Quelltext fest verankert |
|
partiell | Berechtigungen werden überprüft und angewendet. Allerdings wird der Eigentümer von hochgeladene Dateien noch auf root gesetzt |
|
Nein |
Implementierte FTP Kommandos
Kommando | Implementiert | Komentar |
---|---|---|
ABOR | partiell |
Führt zum Absturz des FTP Server mit einem "Segmentation Fault" |
ACCT | Nein | |
APPE | Nein | |
CDUP | Ja | |
CWD | Ja | |
DELE | Nein | |
LIST | Ja | |
HELP | Nein | |
MDTM | Nein | |
MKD | Nein | |
MODE | Ja | |
NLST | Nein | |
NOOP | Ja | |
PASS | Ja | |
PASV | Ja | |
PORT | Ja | |
PWD | Ja | |
QUIT | Ja | |
RETR | Ja | |
REIN | Nein | |
RMD | Nein | |
RNFR | Nein | |
RNTO | Nein | |
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 |