Chmod 0-Datei ohne Superuser-Rechte löschen?

2138
Tarnschaf

Ein PHP-Skript hat versehentlich die rechten Flags (chmod) eines Verzeichnisses in 0 geändert. (Kein Zugriff für jedermann einschließlich Besitzer). Wenn ich keinen Root-Zugriff auf diesen Server habe, kann ich die Datei dann erneut mit FTP oder PHP löschen?

2

3 Antworten auf die Frage

6
Chris Johnsen

Ohne die Verwendung von ACLs außerhalb des Basisberechtigungssystems chmod 000kann a ohne zusätzliche Berechtigung rückgängig gemacht werden. Die Berechtigungsbits steuern den Zugriff auf den Inhalt der Datei, jedoch nicht den Schreibzugriff auf die Berechtigungsbits selbst. In der Regel haben root und der Besitzer der Datei immer Schreibzugriff auf die Berechtigungsbits. Sie sollten die Datei also "wiederherstellen" können, solange Sie als Eigentümer der Datei Maßnahmen ergreifen können.

$ id -u  501 $ echo foo > foo  $ stat -f '%u %p' foo; cat foo  501 100644 foo $ chmod 000 foo $ stat -f '%u %p' foo; cat foo 501 100000 cat: foo: Permission denied $ chmod 644 foo $ stat -f '%u %p' foo; cat foo 501 100644 foo 

Wenn Sie über eine Shell-Zugriffsberechtigung verfügen und Ihr Shell-Benutzer die Datei besitzt (oder Ihr Benutzer zum Besitzer der Datei wechseln kann (su / sudo /…)), müssen chmodSie die Datei einfach per Hand zurückschicken. Wenn Sie das PHP-Skript bearbeiten können (und das PHP als Eigentümer der Datei ausgeführt wird), müssen Sie es an chmoddie Datei mit den gewünschten Berechtigungen anpassen.

0
Chris Kimpton

Wenn Sie das PHP, mit dem die Datei erstellt wurde, zunächst ändern können, könnten Sie das PHP dazu bringen, die Berechtigungen auf das zurückzusetzen, was Sie möchten ...

-1
Snark

Grundsätzlich nein. Sie haben den gesamten Zugriff auf die Datei verloren. Nur root kann die Berechtigungen für diese Datei ändern. Wenden Sie sich an Ihren Systemadministrator oder an die Administratoren des Hosting-Unternehmens oder des ISP, der die Site hostet.