Was ist CHMOD 777 ?
Der Begriff CHMOD (übrigens ein UNIX-Befehl) dient dazu, die Zugriffsrechte einer Datei zu verändern.
Bevor wir diese Ändern, sollten wir uns mal kurz anschauen, was die Zugriffsrechte überhaupt sind:
Unter Unix (genauso unter Linux) bekommt jede Datei verschiedene "Rechte" zugewiesen. Bei diesen Rechten wird zum Einen zwischen drei verschiedenen Benutzergruppen, und zum Anderen zwischen drei verschiednen Rechten unterschieden.
Die Benutzergruppen sind:
- "Owner" - der Eigentümer der Datei (also der, der diese Datei erstellt hat)
- "Group" - die Gruppe, in der sich der Eigentümer befindet (z.B. Administratoren)
- "Public" - alle
Die Rechte sind:
- read (lesen oder auch "4")
- write (schreiben oder auch "2")
- execute (ausführen oder auch "1")
Was bringt uns das? Ganz einfach: man kann so z.B. nur Administratoren erlauben, den Befehl "FORMAT" auszuführen, oder eine System-Konfigurationsdatei zu verändern (schreiben)
Die meisten Webserver (auf denen auch eure Homepages liegen) sind UNIX-Systeme, und dort werden diese Rechte genauso vergeben.
Will man also eine Textdatei, die auf dem Server liegt auslesen, dann muss das Recht "read" für das Script, welches diese Datei auslesen will, gesetzt sein. Und zwar: Wenn das Script diese Datei erstellt hat, dann für den "Owner", sonst für "Public".
Das gleiche gilt natürlich für "write", wenn man die Datei verändern (also schreiben) will, und für "execute", wenn es sich um eine Ausführbare Datei handelt.
Bei den Rechten oben habe ich auch Zahlen mit angegeben. Diese stehen für die Wertigkeit, der einzelnen Rechte. Sollen mehrere Rechte gesetzt werden, dann müssen diese Wertigkeiten einfach addiert werden.
Mal ein Beispiel, was das Ganze verdeutlichen soll:
755 heißt demnach:
- read, write und execute für "Owner" (erste Ziffer)
- read und write für "Group" (zweite Ziffer)
- read und write für "Public" (dritte Ziffer)
Wie werden nun, diese Rechte beeinflusst? Nach dem Hochladen einer Datei hat diese in der Regel "644". Verzeichnisse in der Regel "755". Handelt es sich bei einer hochgeladenen Datei um eine Textdatei, die man von einem Script beschreiben will, dann muss man die Rechte auf mindestens "666" ändern.
Hinweise:
- PHP- (und andere) Scripte sind keine Ausführbaren Dateien!!! Es sind nur Scripte, die dann von einer PHP.EXE (o.ä.) ausgeführt werden. "execute" muss also nicht gesetzt werden!
- die Rechte gelten auch für Verzeichnisse. Ist bei einem Verzeichnis "read" nicht für "Public" erlaubt, kann man das Verzeichnis und alle Dateien in dem Verzeichnis nicht lesen. d.h. auch der Browser nicht!!!
- sind in einem Verzeichnis Scripte abgelegt, dann muss das Verzeichnis "execute"-Rechte für alle drei Benutzergruppen besitzen.
Hat man das Problem, daß ein Script einen Fehler meldet wie z.B. "cannot open file", dann bekommt man oftmals zu hören "setz mal 777 drauf". Das ist sicher eine einfache Methode, da man damit dieser Datei alle Rechte gibt, die sie überhaupt haben kann. Es ist aber natürlich nicht die sicherste Methode. Ein Script auf einem anderen Webserver könnte diese Datei dann auch beschreiben, oder ausführen.
In den meisten FTP-Programmen kann man diese Rechte verändern. Einfach mal nen Rechtsklick auf die Datei machen, und da steht dann meistens sowas wie "Eigenschaften (CHMOD)" oder so.
Ich hoffe, das bringt etwas Licht ins Dunkel
|