Ich habe ein wenig zu kämpfen, um das Konzept dervon PHP zu verstehen, da der Kurs, den ich gerade nehme, ein bisschen veraltet ist und betrifft safe_mode. Es besagt, dass, da safe_mode deaktiviert ist, die Einschränkungen zum Ändern von Berechtigungen mit in eine Datei entfernt werden, 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 die folgende PHP-Skript ausführen:PHP chmod(): Operation nicht erlaubt, safe_mode Abwertung beteiligt?
echo "File permissions :" . decoct(fileperms("file_permissions.php"));
chmod("file_permissions.php" ,0777);
ich die folgende Ausgabe erhalten:
Warning: chmod(): Operation not permitted
Meine Berechtigungen für die Datei sind die folgenden
[email protected] 1 joelhernandez staff 24 Apr 14 06:59 file_permissions.php
Und ich habe ps aux | grep httpd
ausgeführt Bestätigen Sie, dass der mein Webserver unter dem Benutzer "Daemon" läuft.
Als ich die Datei Eigentum an Daemon ändern:
[email protected] 1 daemon staff 24 Apr 14 06:59 file_permissions.php
Alles funktioniert, ich verstehe nicht, warum, wie ich hatte verstanden, dass mit safe_mode ausgeschaltet, Dateieigentum nichts bedeuten würde, stattdessen Berechtigungen Datei war der Weg, den Zugang zu handhaben.
In Ordnung, also welchen Ansatz sollte ich nehmen? Ist safe_mode nicht deaktiviert, wenn Berechtigungen deaktiviert sind, wenn Benutzer nicht über Berechtigungen verfügen? Ich glaube auch, dass ich gelesen habe, dass chmod() keine Super-User-Berechtigungen benötigt, nur chown() –
'chmod' erfordert nicht immer root - Benutzer können den Modus der Dateien ändern, die sie besitzen -' joelhernandez' kann den Modus ändern Dateien im Besitz von 'Joelhernandez' und' Daemon' können den Modus von Dateien im Besitz von 'Daemon' ändern. Benutzer (außer root) können den Modus von Dateien, die sie nicht besitzen, nicht ändern - 'daemon' kann den Modus von Dateien, die' joelhernandez' gehören, nicht ändern. –
Was Sie stattdessen tun sollten, ist schwer zu sagen, ohne mehr darüber zu wissen, was Sie erreichen wollen. –