Howto: Eine FTP Dropbox
Hin und wieder kommt es vor, dass man einen FTP Zugang haben möchte bei dem es möglich seinen soll, dass mehrere Leute Daten hochladen dürfen aber die Daten von anderen Leute nicht sehen sollen.
Die sauberste Lösung wäre es, wenn man jedem Benutzer einen eigenen Zugang erstellen würde. Somit wäre das Problem schon besiegt. Doch leider würde der Verwaltungsaufwand drastisch steigen und dem potentiellen Benutzer würde das Leben unnötig erschwert werden.
Die zweite Alternative wäre ein Web-basierendes Verfahren, bei dem der Benutzer die Daten über ein übliches Formular versendet. Gerade wenn es um größere Dateien geht, verzichte man dabei auf gewisse Bequemlichkeiten, die man bei einem FTP Server genießt. Zum Beispiel das fortgesetzte hochladen der Daten nach einem Abbruch.
Aber mittels dem Linux Rechtesystem kann man so eine “Dropbox” recht einfach realisieren. Dazu werden zwei Benutzer benötigt. Nennen wir sie mal ftpadmin und ftpuser. Der Benutzer ftpadmin soll in der Lage sein, hoch geladene Dateien zu sehe und zu bearbeiten. Der Benutzer ftpbenutzer soll nur Daten hochladen können, aber keine anderen Daten sehen oder löschen können.
Dazu legen wir im Heimat-Verzeichnis des ftpadmin Benutzers ein Unterverzeichnis mit dem Namen “dropbox” an. Wichtig ist es jetzt, das dieses Verzeichnis dem Benutzer ftpadmin zugeordnet wird (chown ftpadmin dropbox) . Dieses Verzeichnis wird das Heimat-Verzeichnis des ftpuser Benutzers und erhält folgende Rechte: drwx-wx-wx (oktal:0733). Wie man erkennen kann, darf der Besitzer des Verzeichnises (ftpadmin) alles lesen (r), schreiben (w) und ausführen (x). Bei Verzeichnissen hat das x-Flag eine etwas andere Bedeutung. Es bedeutet, dass man das Verzeichnis betreten darf.
Die Gruppe und alle anderen dürfen somit das Verzeichnis betreten und beschreiben, aber dürfen nicht sehen was sich darin befindet.
Also so ziemlich genau, dass was wir haben wollten. Nur wie sorgen wir dafür, dass die Dateien nicht gelöscht werden. Das ist genau der Haken an der gesamten Sache. Mir ist kein Verfahren bekannt mit dem ich das löschen der der Dateien verhindern kann. Evtl. bieten ACL Richtlinien der diversen Filesystem da noch die eine oder andere Möglichkeit.
Picture take from http://flickr.com/people/rivet/