Schreib- und Zugriffsrechte

Chmods (englisch: change mode) sind die Schreib- und Zugriffsrechte einer Datei. Diese Regeln ob eine Datei, zum Beispiel datei.txt, über ein PHP-Script mit Inhalt gefüllt werden darf oder nicht.

Während dies unter Windows üblicherweise unproblematisch ist, kann es unter Unix (mit diesem System laufen die meisten Webserver) zu Problemen kommen.

Um bei einem Gästebuch oder einem sonstigen Script eine .txt Datei als Datenquelle zu nutzen, muss man die Chmods entsprechend setzen. Wenn der Inhalt der Datei sich verändert, ist das in den meisten Fällen Chmod 700.

Um den Chmod einer Datei zu ändern, muss man diese zuerst mit einem FTP-Programm (z. B.: FileZilla » http://filezilla.sourceforge.net kostenlos) hochladen.
Danach markiert man die Datei und macht einen Rechtsklick, im erscheinenden Kontextmenü sollte "Chmods", "Attribute", "Schreibrechte", "Eigenschaften" oder etwas derartiges stehen. Nun kann man den Chmod ändern. (Eventuell in der Hilfe des Programms nach schauen). Zugriffsrechte können Sie auch für Verzeichnisse (Ordner) vergeben.

[Bildschirmfoto] FTP-Programm „FileZilla” Dateiberechtigung auswählen.
FTP-Programm „FileZilla” Dateiberechtigung auswählen.
[Bildschirmfoto] FTP-Programm „FileZilla” Dateiberechtigung ändern.
FTP-Programm „FileZilla” Dateiberechtigung ändern.

Machen Sie von der Möglichkeit, anderen Benutzern Zugriffsrechte zu gewähren nur nach sogfältiger Prüfung Gebrauch. Stellen Sie sicher, dass Sie die Zugriffsrechte nicht zu großzügig einstellen!

Sicherheit

Aus Sicherheitsgründen dürfen Programmdateien keine Chmod 777 Benutzerrechte haben. Nur Verzeichnisse dürfen damit bearbeitet werden.
Durch das falsche setzen von Chmod können unberechtigte Benutzer (vom selben Server) Zugriff auf Ihre Dateien erhalten, beachten Sie diesen Umstand und seien Sie entsprechend vorsichtig. Die Berechtigungen Ihres obersten Verzeichnisses sollten Sie deshalb niemals ändern, bzw. niemals mit vollen Rechten (Chmod 777) versehen. Mit dem "obersten Verzeichnis" ist Ihr Account-Start-Verzeichnis gemeint.

Sie sollten die Schreib- und Zugriffsrechte niemals auf Chmod 000 setzen. Über FTP kann dann der Chmod nicht mehr geändert werden, auch ein verschieben oder löschen der Datei zeigt keine Wirkung.

Rechte sind eine tolle Sache, um ein System abzusichern. Allerdings müssen sie auch korrekt gesetzt und gepflegt werden! Ansonsten hilft das schönste Rechtekonzept nichts.

Schreibrechte einer Datei oder Verzeichnisses mit PHP setzen und auslesen

<?php
// Datei Schreibrechte setzen
chmod("datei.txt", 0777); 

// Verzeichnis Schreibrechte setzen
chmod("daten/", 0777);

// Verzeichnis mit Schreibrechten erstellen
mkDir("daten/", 0777); 

// Schreibrechte eines Verzeichnisses auslesen
echo substr(sprintf("%o", fileperms("test")), -4);

// Schreibrechte einer Datei auslesen
echo substr(sprintf("%o", fileperms("test.txt")), -4);
?>

Tipp

» Chmod-Kalkulator - Mit dem Chmod-Kalkulator können Sie die zur Vergabe von Zugriffsrechten benötigten Parameter des UNIX-Befehls Chmod ermitteln.