Warum kann PHP kein Verzeichnis mit 777-Berechtigungen erstellen?
PHP kann kein Verzeichnis mit 777-Berechtigungen erstellen, da die mkdir()
-Funktion, die verwendet wird, um ein neues Verzeichnis zu erstellen, standardmäßig die aktuelle Umask-Einstellung des Servers verwendet, um die Berechtigungen des neu erstellten Verzeichnisses zu bestimmen. Die Umask ist ein Wert, der von den Standardberechtigungen subtrahiert wird, um die tatsächlichen Berechtigungen einer neu erstellten Datei oder eines Verzeichnisses zu bestimmen. Wenn die Standardberechtigungen 666 sind und die Umask 002 ist, sind die tatsächlichen Berechtigungen der neuen Datei 664.
Wenn die Umask des Servers auf einen Wert eingestellt ist, der keine 777-Berechtigungen zulässt, kann die mkdir()
-Funktion kein Verzeichnis mit 777-Berechtigungen erstellen. Der Server-Administrator kann die Umask-Einstellung ändern, um weitere erlaubnisfreudige Berechtigungen zu ermöglichen, aber dies kann ein Sicherheitsrisiko darstellen und wird nicht empfohlen.
Zusätzlich kann die PHP-Funktion chmod()
verwendet werden, um die Berechtigungen eines Verzeichnisses nach dessen Erstellung zu ändern, kann jedoch nur verwendet werden, um die Berechtigungen auf einen Wert zu ändern, der durch die aktuelle Umask-Einstellung des Servers erlaubt wird.