|
Salü,
ich werde immer wieder gefragt, wie denn nun die richtigen Berechtigungen auf einem Server sein sollen.
Eine generelle Aussage gibt es nicht, weshalb ich mal versuche, alle Fälle hier darzustellen.
Am einfachsten ist es, wenn der Benutzer, unter dem der Webserver läuft (also Apache) der gleiche wie der FTP-Hauptbenutzer ist. Das wird in der http.conf geregelt.
Die Gruppenrechte interessieren dann nicht mehr, außer man nutzt mehrere Domains mit mehreren FTP-Benutzern. Hier sollte sowohl der Webserver als auch die FTP-Benutzer wenigstens in der gleichen Benutzergruppe sein.
Bei vielen Root- oder Virtual Servern sind die Benutzer unterschiedlich - jedoch bei gut konfigurierten Servern, sind FTP-Hauptbenutzer und Webserver Benutzer in der gleichen Benutzergruppe.
Bei Freehostern oder schlecht konfigurierten Systemen sind sowohl Benutzer als auch Gruppe komplett unterschiedlich.
Berechtigungen wenn Webserver- und FTP-Hauptbenutzer identisch sind:
Für Verzeichnisse: 700 (Schreib-/Lese- und Ausführungsrecht für den Inhaber des Verzeichnisses)
Für Dateien: 600 (Schreib- und Leserecht für Inhaber der Datei)
Berechtigungen wenn Webserver- und FTP-Hauptbenutzer nicht identisch aber in der selben Benutzergruppe sind:
Für Verzeichnisse: 750 (Schreib-/Lese- und Ausführungsrecht für Inhaber, Lese- und Ausführungsrechte für die gleiche Benutzergruppe) Für Verzeichnisse, für die der Webserver Zugriffsrechte benötigt (um z.B. neue Verzeichnisse anzulegen) 770.
Für Dateien: 640 (Schreib- und Leserecht für Inhaber und Leserecht für gleiche Gruppe). Für Dateien, die durch den Webserver beschrieben werden sollen: 660
Berechtigungen wenn Webserver- und FTP-Hauptbenutzer nicht identisch sind und nicht in derselben Benutzergruppe sind:
Für Verzeichnisse: 707 (Schreib-/Lese- und Ausführungsrecht für Inhaber und Gäste - der Webserver wird wie ein "Gast" behandelt)
Für Dateien: 606 (Schreib- und Leserecht für Inhaber und Gäste)
Wie man sehen kann, ist es natürlich ein großes Sicherheitsrisiko, wenn Webserver- und FTP-Hauptbenutzer nicht identisch sind bzw. nicht der gleichen Gruppe angehören, da das Recht "Gast" natürlich auch für jeden gültig ist, der per Browser auf den Server zugreift.
In diesem Falle werden Zugriffe über die Datei ".htaccess" geregelt, die wir in fast jedem Verzeichnis ablegen. Das verlangsamt aber auch den Zugriff auf die Webseite DEUTLICH, da bei jedem Zugriff (Bild, Datei usw.) zuerst das Recht auf Zugriff abgefragt werden muss.
Es gilt: Ist eine .htaccess im Root-Verzeichnis aktiviert, schaut Apache zuerst in jedem Verzeichnis, auf die der Webserver zugriff nimmt, nach, ob dort eine .htacces vorhanden ist. Ist keine vorhanden, werden die Berechtigungen aus dem übergeordneten Verzeichnis übernommen.
Liegt im root keine .htaccess vor, werden die Einstellungen der http.conf auf alle Verzeichnisse übernommen.
Auf der anderen Seite kann es gefährlich sein, wen man dem Webserver zu viele Rechte zuordnet. So könnte eine falsche Programmierung dafür sorgen, dass über den Webserver gefährliche Dateien auf dem Server abgelegt werden.
Somit gilt für mich (meine Meinung !!) die Einstellung als am besten geeignet:
- Eigener Benutzer für den Webserver, der KEINE Root-Rechte besitzen darf (also auch nicht in der Benutzergruppe des root ist).
- Webserserver und FTP-Hauptbenutzer in der gleichen Benutzergruppe.
Damit kann ich alle Verzeichnisse und Dateien alleine über das Betriebssystem so schützen, dass ein Gast gar keine Rechte hat. Ich verzichte auch - wenn möglich - auf den Einsatz von .htaccess Dateien wenn der Server richtig konfiguriert ist.
Ich hoffe, dass dieser Artikel dem einen oder anderen hilft, die Rechte richtig zu setzen, vor allem, da es ja bisher schon immer die Einstellungen in der config.php gab und seit der 2.1.0 Final auch eine Verwaltung in der Administration, die diese Einstellungen der config.php überschreibt.
Grüße
Reo
|