Sönke Tesch: Rechte

Beitrag lesen

Offenbar habe ich das mit den Rechten die man mit chmod
setzt nicht ganz kapiert. Gibt es da einen guten
Link oder vielleicht eine gute Erklärung? Was heisst "Gruppe", "Eigentümer", "Sonstige"?

Wie Du wahrscheinlich weißt, kann man unter Unix verschiedene Benutzer einrichten. Jeder Benutzer ist gleichzeitig Mitglied einer oder mehrerer Gruppen.
Darauf basierend erlaubd es das Dateisystem, jemanden, der auf eine Datei zugreifen will, in drei verschiedene Klassen einzuteilen und ihm entsprechende Rechte zuzubilligen: Eigentümer, Gruppe, sowie alle anderen, die nicht in die ersten beiden Klassen fallen.
Auf diese Art und Weise ist es möglich, recht genau zu bestimmen, wer auf eine Datei zugreifen darf und wer nicht. Zum Beispiel kann ein Lehrer eine Zensuren-Datei erstellen und sich selbst (als Eigentümer) Lese- und Schreibrechte einräumen. Die Datei ordnet er der Gruppe "Klasse 1b" zu und gibt der Gruppe nur Leserechte. Alle anderen bekommen gar keine Rechte.
Somit kann nur er die Zensuren ändern und außer ihm und der Klasse kann niemand sonst die Zensuren einsehen.

Bei meinem Template-System wird index.php gestartet. Dieses Script holt die
entsprechenden Daten aus der MySQL-Datenbank/bzw. aus Template-Dateien. Diese
Template-Dateien können aber übers Web administriert werden. Wer hat nun
alles die Möglichkeit in diese Dateien zu schreiben?

Das hängt von den Rechten ab :)

In der Regel kann man bei normalen Hostern davon ausgehen, daß jeder Nutzer auf dem Rechner Deine Dateien einsehen kann - inklusive in den Skripten stehenden Passwörtern. Mit "jeder Nutzer auf dem Rechner" sind aber wohlgemerkt nur diejenigen gemeint, die tatsächlich auf dem Rechner gemeldet sind, sprich Administratoren und alle Kunden des Webhosters, nicht der ganze Globus.
PHP hat eine eingebaute Sperre, die -wenn aktiviert, was auch nicht selbstverständlich ist- einem Skript nur Zugriff auf Dateien erlaubt, wenn Skripteigentümer und Dateieigentümer identisch sind. In dieser Ecke besteht also gewisse Sicherheit, es ist aber ohne weiteres möglich, über CGI-Anwendungen die Web-Dateien fremder Leute auszulesen, da dort eine solche Sperre nicht vorhanden ist.

Diese allgemeinen Leserechte sind bei 08/15-Standardinstallationen notwendig, da der Webserver gewissermaßen als eigene Identität arbeitet. Aus Sicht des Dateisystems ist der Webserver ein Nutzer mit dem Namen www (oder ähnlichem), dem Leserechte eingeräumt werden müssen. Und das geht nur, indem man "allen Nutzern" Leserechte einräumt, da die Gruppenrechte wegen einer Beschränkung ausscheiden (wenn der Hoster nicht vorgesorgt hat).

Schreibrechte hat normalerweise nur der Eigentümer der Datei. Einzige Ausnahme: Ein PHP-Skript soll in die Datei schreiben dürfen, dann muß in den meisten Fällen wiederum "jeder Benutzer" Schreibrechte haben, da das Skript nicht "in Deinem Namen" läuft, sondern im Namen des Webservers.

Gruß,
  soenk.e