Dateisystem-Berechtigungen
Um den Zugriff auf Dateien und Ordner zu beschränken, unterstützt jedes vernünftige Dateisystem das Konzept von Dateisystem-Berechtigungen. Die grundlegendste Form sind die traditionellen Unix-Berechtigungen (und diese sind es, mit denen du höchstwahrscheinlich auf deinem Webserver zu tun haben wirst). Oft sprechen wir auch nur verkürzt von „Schreibrechten“, was zwar nicht ganz korrekt ist, aber doch meistens das trifft, was wir meinen.
Grundsätzlich hat jede Datei und jeder Ordner drei Attribute:
- lesbar (Wert = 4)
- beschreibbar (Wert = 2)
- ausführbar (Wert = 1)
Bei CMSimple_XH muss keine Datei ausführbar sein, aber die meisten Ordner schon (bei Ordnern bedeutet ausführbar, dass auf den Inhalt des Ordners zugegriffen werden kann). Die Nummern in Klammern sind die Werte für das entsprechende Attribut.
Die einzelnen Werte werden nun addiert, um die Gesamtberechtigungen zu erhalten. Beispiele:
4
= 4 + 0 + 0 = lesbar, aber weder beschreibbar noch ausführbar5
= 4 + 0 + 1 = lesbar und ausführbar, aber nicht beschreibbar6
= 4 + 2 + 0 = lesbar und beschreibbar, aber nicht ausführbar7
= 4 + 2 + 1 = lesbar, beschreibbar und ausführbar
Weiterhin hat jede Datei und jeder Ordner einen Besitzer und gehört zu einer Gruppe. Die Berechtigungen können individuell für den Besitzer, die Gruppe (d.h. alle Benutzer, die Mitglieder dieser Gruppe sind) und für jedermann gesetzt werden. Also werden die Berechtigungen für eine Datei als drei Ziffern notiert.1)
Beispielsweise bedeutet 640
, dass der Datei-Besitzer die Datei lesen und beschreiben, jedes Mitglied der Datei-Gruppe die Datei nur lesen, und alle anderen Benutzer diese nicht einmal lesen können.
Das klingt zwar etwas kompliziert, ist aber in der Praxis ganz einfach, da es nur relevant ist, ob eine Datei oder ein Ordner beschreibbar ist, oder nicht:
- Dateien:
4
(schreibgeschützt) bzw.6
(beschreibbar) - Ordner:
5
(schreibgeschützt) bzw.7
(beschreibbar)
Und es ist wichtig, welcher Benutzer auf die Datei zugreift: der Besitzer oder jemand anderes. Dies hängt davon ab, wie PHP auf dem Webserver ausgeführt wird. Wenn es als FastCGI läuft, dann ist der Benutzer normalerweise der Besitzer der Datei, ansonsten eben nicht. In der PHP-Info kannst du unter „Server API“ nachsehen, wie das auf deinem Server geregelt ist.
1) Eigentlich handelt es sich hier um eine Oktalzahl, die üblicherweise als z.B. 0755
geschrieben wird. Zur Vereinfachung lassen wir im Folgenden die führende Null weg.
Fazit
Normalerweise kann man sich darauf verlassen, dass das FTP-Programm und die Server-Einstellungen automatisch alle Rechte richtig setzen und man nichts tun muss. Nur bei speziellen Konfigurationen kommt es zu Problemen und Warn-Meldungen. Für diese Fälle gelten folgende „Faustregeln“:
Wenn der Benutzer auch der Besitzer der Datei ist (bei FastCGI), genügt es, die Schreibrechte nur für den Besitzer zu vergeben:
- Ordner:
555
(schreibgeschützt) bzw.755
(beschreibbar) - Dateien:
444
(schreibgeschützt) bzw.644
(beschreibbar)
Andernfalls sollten die Schreibrechte „für jeden“ vergeben werden:
- Ordner:
555
(schreibgeschützt) bzw.777
(beschreibbar) - Dateien:
444
(schreibgeschützt) bzw.666
(beschreibbar)
Wenn du dir nicht sicher bist, probiere es einfach aus. ;-)
Ändern der Berechtigungen
Die Dateisystem-Berechtigungen können mit jedem vernünftigen FTP-Programm geändert werden. Wie das genau geht, hängt vom jeweiligen FTP-Programm ab (Dokumentation lesen!).
Sicherheit
Natürlich könntest du allen Dateien und Ordnern volle Berechtigungen (d.h. 777
) geben, und CMSimple_XH wird gut funktionieren. Aber das beeinträchtigt die Sicherheit, da andere in der Lage sein könnten, eine Datei zu ändern, die nicht geändert werden sollte. Daher sollten für maximale Sicherheit nur die nötigen Berechtigungen vergeben werden, d.h. alle Dateien und Ordner, außer denjenigen, die beschreibbar sein müssen, sollten schreibgeschützt sein. Welche Dateien und Ordner Schreibrechte benötigen, ist im Artikel Installation erklärt.
Glossar
FTP
FTP = File Transfer Protocol
Datenübertragungsprotokoll in Netzwerken, das zum Hoch- und Herunterladen von Daten zum und vom Server dient. Außerdem sind mit FTP verschiedene Operationen möglich, wie z.B. anlegen, löschen und umbenennen von Verzeichnissen und Dateien sowie die Vergabe von Lese- und Schreibrechten. Um FTP nutzen zu können, benötigt man ein FTP-Programm, auch FTP-Client genannt.
PHP
PHP = Hypertext Preprocessor, ursprünglich Personal Home Page Tools
PHP ist eine Skriptsprache, die häufig zur Erstellung dynamischer Websites verwendet wird.
Schreibrechte
Siehe: Dateisystem-Berechtigungen