PHP/MySQL - Praxistutorial 4 - Zugriffsrechte
1. Die Abschnitte
- Überblick
- Das Formular
- Zugriffsrechte
- Grundsätzliches
- Der Upload
- Rechte setzen
- Dateien auslesen
- Dateien anlegen
- Dateien löschen
2. Unix-Systeme
Wie ich schon eingangs sagte, sind die Zugriffsrechte unter Unix-Systemen nämlich völlig anders als unter Windows. Wenn ein Ordner oder eine Datei angelegt wurde, so existieren dafür drei "Zugriffskategorien".
user
der Besitzer, also der, der die Datei erstellt hat.group
die Gruppe, zu der dieser Besitzer gehört.all
die Anderen, also der schäbige Rest.
Für jede dieser Kategorien gibt es drei Zugriffsmöglichkeiten, die mit entsprechenden Zahlenwerten verknüpft sind. Bei mehreren Rechten werden diese Zahlen einfach addiert. Das Ganze baut sich dann in einem Dreierschema auf:
- 4 - read (lesen)
- 2 - write (schreiben)
- 1 - execute (ausführten)
3. Ein Beispiel
Wir laden mit einen FTP-Programm eine Datei auf einen Webserver hoch. Dann gibt es den entsprechenden Besitzer, also den Benutzernamen, den wir für den Zugang brauchen (z.B. u123456). Der gehört dann zum Beispiel zur Gruppe "ftpuser". Nehmen wir jetzt mal an, dass unser Provider folgende Standardeinstellungen hat. Der Besitzer darf alles, die Gruppe lesen und ausführen und der Rest nur lesen. Ist ein zugegebenermaßen willkürliches Beispiel, aber darum geht es im Moment nicht. Daraus ergibt sich folgende Konfiguration.
read write exec rechte
user 4 2 1 7 (4 + 2 + 1)
group 4 0 1 5 (4 + 0 + 1)
all 4 0 0 4 (4 + 0 + 0)
-------------------------------------------------
Ergebnis für Datei "xyz" 754
oder -rwx-rx-r
4. Der feine Unterschied
Warum all dieses ganze Rumgetue? Ganz einfach. Viele denken, dass sie auf ihrem Webspace (ihrer Domain bei einem Provider) alle Rechte auf die Dateien haben, egal von wo. Das ist aber ein Irrglaube. Lade ich eine Datei per FTP hoch, so gehört sie dem FTP-Benutzer(!), der zur Gruppe "ftpuser" (zum Beispiel) gehört. Erstellt man zum Beispiel eine Datei mit PHP, so gehört diese z.B. dem User "wwwrun", der zur Gruppe "www"(!) gehört. Daraus ergeben sich folgende Konsequenzen.
- Ich lade eine Datei per FTP hoch und will sie dann mit PHP bearbeiten. Geht nicht
- Ich habe eine Datei mit PHP erstellt und will sie über mein FTP-Programm löschen Geht nicht
Warum? Ganz einfach, zwei User in zwei unterschiedlichen Gruppen. Um all diesen Problemen aus dem Weg zu gehen, muss man die entsprechenden Rechte manuell oder per Programmierung ändern.
5. Rechte per FTP ändern
Dafür nutzt ihr einfach das FTP-Programm eurer Wahl, markiert die entsprechende Datei oder den entsprechenden Ordner und dann
könnt ihr in den meisten Fällen mit einem Rechtsklick und CHMOD
oder Dateiberechtigung die notwendigen Rechte vergeben. Im
Filezilla zum Beispiel sieht das so aus.
Wie man das mit PHP macht, zeige ich euch später.
6. Welche Stufe
... soll man denn nun einstellen? Nun, 777
nur dann, wenn gar nichts mehr geht. Denn sonst hat auf dem Server jeder Dödel
volle Zugriffsrechte. Und bei Hackerattacken kann da schon mal was tierisch in die Hose gehen. Normalerweise benötigt man nur einen
Lese- und Schreibzugriff. Arbeitet man mit den Dateien nur unter einem Benutzer, also entweder als FTP- oder PHP-User, so reicht ein
644
völlig aus. Ansonsten sollte man die Rechte auf 666
setzen.
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt