Rechte

Jedes Element in einem Dateisystem ist mit Zugriffsrechten versehen. In den meisten Fällen liegt ein Linux-System vor, daher schauen wir uns dieses genauer an. Windows nutzer haben meist keine Probleme mit den Rechten, aber sobald die Programme dann bei einem Webspaceanbieter hochgeladen werden, geht der Streß los.

Basiswissen

Jedes Element (Datei, Ordner, etc.) wird mit Zugriffsrechten ausgestattet, und zwar in der Reihenfolge für den Besitzer, einer Gruppe und für alle Anderen. Jedem dieser drei Nutzer werden drei Rechte zugewiesen: Lesen (read)(r), Schreiben (write)(w), Ausführen (execute)(x)

Und so sieht es meist aus:

 Name Größe Geändert Rechte Besitzer Gruppe
 index.php 144 28.03.2013 20:00 rw-r--r-- root root
 daten.txt 57 28.03.2013 20:22 rw-r--r-- www-data www-data

Ein Nutzer mit namen root, hat das Recht die Datei "index.php" zu lesen (r) und zu schreiben (w) aber darf sie nicht ausführen (-). Alle anderen dürfen die Datei lesen.

Die Datei "daten.txt" gehört einem gewissen "www-data", dies ist oft der Nutzername unseres Apache-Webservers. In unserem Fall war es unser PHP-Programm "index.php" welches diese Datei angelegt hat. Sie darf von allen gelesen werden, aber nur www-data darf sie schreiben (löschen inklusive).

Für uns

Das Ausführen (x) ist für unsere PHP-Programme nicht entscheidend. Denn unsere Programme werden nicht vom System ausgeführt, sondern sie werden "nur" vom Webserver gelesen, und von diesem auch interpretiert. Wir benötigen somit nur Leserechte. Andere Dateien, mit denen unsere Programme arbeiten sollen (lesen, schreiben, verschieben, etc.), benötigen zusätzlich das Schreibrecht (w), ebenso die Ordner, indem sich die Dateien befinden (sollen).

Wenn unsere Programme die Dateien erzeugen (somit der Webserver), müssen wir uns meist nie um die Rechte kümmern. Sie werden automatisch beim Erstellen für den Besitzer auf Lesen und Schreiben gesetzt. Nur wenn der Programmierer eingreift, also z.B. per FTP Dateien und Ordner hochlädt, sollte er darauf achten, welche Rechte unser Webserver benötigt, und diese einstellen.