Frank: schreibzugriff auf bestimmte dateien

Beitrag lesen

Hallo Frank,   <--- Das ist die Begrüßung;
                    und darauf wird hier Wert gelegt :-)

Kannst du mir mal sagen wie ich dich begrüßen soll, wenn du später postest. Aber trotzdem: sei mir gegrüßt.

gehen wir mal von einem LAMP-System aus. LAMP steht für LINUX-Apache-MySQL-PHP.

In der Konfigurationsdatei vom Apache wird festgelegt, wo die jeweilige Domain ihre Document-Root hat. Zugriffe auf eine höhere Ebene über HTTP, FTP (usw) von außen läßt der Apache (wenn er in Ordnung ist) nicht zu. Der Apache selber kommt aber mit Hilfe von PHP an ALLE Dateien des Servers heran, die für ihn lesbar sind.

Deine Datendateien sollten also außerhalb der Document-Root liegen und bestimmte Rechte bekommen.

Ich setze immer die Rechte

Owner (U) = Webdesigner
Group (G) = WWWRead
oder
Group (G) = WWWWrite
World (O) = ./.

Der Apache läuft standardmäßig unter dem User WWWRUN.
Der User WWWRUN ist bei mir Mitglied in der Gruppe WWWRead und WWWWrite.

WWWRead darf nur lesen
WWWWrite darf lesen und schreiben.

Auf diese Weise kann ich mit einem maskierten Befehl die Rechte sehr schnell wiederherstellen. Hat die Datei als Gruppe WWWRead, so wird

rw- r-- ---

eingestellt.
Soll der wwwrun lesen UND schreiben können, dann wird

rw- rw- ---

eingestellt und der Datei die Gruppe WWWWrite zugewiesen.

Das ist natürlich meine persönliche Meingung und es gibt gewiss viele andere Lösungen. Aber so hat man sehr schnell ein aufgeräumtes System.

Wenn Du mit dem wwwrun (also mit PHP) Dateien anlegst, dann solltest Du vorher den Befehl umask() verwenden, dass die neue Datei gleich mit den eingeschränkten Rechten angelegt wird. Sie gehört dann allerdings dem wwwrun. Den Besitzerwechsel kannst Du unter Linux nur als Root veranlassen.

Der HTML-User am Client darf nun maximal das mit den Dateien machen, was der WWWRun darf. Durch entsprechende Einschränkung (Authentifikation) im Script oder durch .htaccess im jeweiligen Datenverzeichnis kannst Du die Rechte noch weiter einschränken.

Ich möchte bei dieser Gelegenheit ausdrücklich darauf hinweisen, dass ein Linux out-of-the-Box viel zu viele Rechte für Others = World vergibt. Man sollte die alle entziehen. Es könnte sonst jeder, der es fertig bringt, ein Script hochzuladen, an alles heran.

Bis denne
viel Erfolg

Tom

(das war die Schlußformel, sollte man hier auch benutzen *g*)