SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=214&group=38
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Berechtigungen von Dateien und Verzeichnissen


Sowohl die Funktion chmod() als auch das zweite Argument der Funktion mkdir() ermöglichen die Vergabe von Berechtigungen für Dateien und Verzeichnisse. Diese Zahl setzt sich aus vier Stellen zusammen.

Um den korrekten Wert für jede Stelle zu berechnen, addieren Sie die von Ihnen für die jeweilige Stelle gewünschten Berechtigungen anhand der Werte der folgenden Tabelle:

WertBerechtigungSpezialeinstellung
4Lesensetuid
2Schreibensetgid
1Ausführensticky


Ein Berechtigungswert von 0755 bedeutet:

Spezialeinstellung:
Keine (0)

Dateieigentümer:
Kann die Datei: lesen, schreiben und ausführen
4 = lesen + 2 = schreiben + 1 = ausführen => 7

Benutzer der Gruppe:
Können die Datei: lesen und ausführen
4 = lesen + 1 = ausführen => 5

Alle anderen Benutzer:
Können die Datei: lesen und ausführen
4 = lesen + 1 = ausführen => 5

Die Berechtigung neu erstellter Dateien und Verzeichnisse sind von der Einstellung umask abhängig. Dies ist ein Berechtigungswert, welcher von der Default-Berechtigung einer Datei (0666) bzw. eines Verzeichnisses (0777) entfernt bzw. ausmaskiert wird. Wenn die umask beispielsweise 0022 ist, ist 0644 die Standardberechtigung für eine neue mit fopen() erstellte Datei und 0755 die Standardberechtigung für ein neues Verzeichnis, das mit mkdir() erstellt wird.


Einsatz von umask()

Mit der Funktion umask() können Sie die umask abfragen und einstellen. Diese gibt die aktuelle umask zurück und ändert sie auf den Wert des übergebenen Arguments, falls vorhanden. Im folgenden Beispiel wird lediglich der Eigentümer und der Superuser in der Lage sein, auf die Datei zuzugreifen:

$alte_umask = umask(0077);
touch("privat.txt");
umask($alte_umask);

Der erste Aufruf von umask() maskiert sämtliche Berechtigungen der Gruppe und aller anderen Benutzer. Wenn die Datei erstellt ist, stellt der Aufruf umask() die umask auf die vorherigen Einstellungen zurück.

Hinweis: Wenn PHP als Server-Modul läuft, stellt es die umask am Ende jedes HTTP-Requests auf seinen Standardwert zurück.

Achtung: Die Funktion umask() funktioniert nicht unter Windows!