Ich habe ein wenig Mühe, das Konzept von chmod()
von PHP zu verstehen, da der Kurs, den ich gerade mache, etwas veraltet ist und safe_mode beinhaltet. Es besagt, dass Safe_mode deaktiviert ist, werden die Einschränkungen zum Ändern von Berechtigungen mit chmod()
in eine Datei entfernt, wenn der Eigentümer nicht derselbe ist wie derjenige, der den Befehl ausführt. Ich arbeite mit PHP 5.5.9 in Verbindung mit XAMPP, ich habe überprüft, dass die Flags ausgeschaltet sind (nur für den Fall), aber es scheint nicht zu funktionieren. Als ich das folgende PHP-Skript ausführe:
Ich erhalte folgende Ausgabe:
%Vor%Meine Berechtigungen für die Datei sind die folgenden
%Vor% Und ich habe ps aux | grep httpd
ausgeführt, um zu bestätigen, dass mein Webserver unter dem Benutzer "daemon" läuft.
Wenn ich den Dateibesitz auf Dämon ändere:
%Vor%Alles funktioniert, ich verstehe nicht, wieso ich verstanden habe, dass mit safe_mode die Dateieigentümerschaft nichts bedeuten würde, stattdessen waren Dateiberechtigungen der Weg, den Zugriff zu handhaben.
Der daemon
-Benutzer ist nicht root
, daher ist es nicht erlaubt, den Modus einer Datei zu ändern, die einem anderen Benutzer gehört. PHP safe_mode ist hier nicht die Ursache. Die Warnung informiert Sie darüber, dass der versuchte Vorgang fehlgeschlagen ist, da der Webserverbenutzer keine Berechtigung zum Ändern des Modus hatte.
Der Vorgang ist erfolgreich abgeschlossen, nachdem Sie die Besitzrechte der Datei manuell in daemon
geändert haben, da Benutzer den Modus ihrer eigenen Dateien ändern dürfen.
Tags und Links php apache file-permissions chmod