Ich kann einen Verzeichnisbaum mit rm -rf nicht entfernen


9

Das kommt mir sehr seltsam vor. Ich verwende Kernel 2.6.37.2 und lief:

~]$ cp -r /proc/ here
~]$ rm -rf here

Ich bekomme einige Berechtigungsverweigerungen, wenn ich wie erwartet kopiere, und drücke schließlich Control-C. Ich bekomme Permission deniedviele Dateien, wenn ich versuche, das neue Verzeichnis und die neuen Dateien zu entfernen.

Als Notiz fand ich dieses seltsame Verhalten, weil mir ein Freund .tgzeinen Schnappschuss seines /procVerzeichnisses schickte . Ich extrahierte das Verzeichnis und als ich es durchgesehen hatte, hatte ich das gleiche Problem.

rm -rf als root funktioniert.

lsattr zeigt das e-Attribut (was alle meine Dateien / Verzeichnisse zeigen).


Ich habe den Titel Ihrer Frage ein wenig verallgemeinert, weil es nicht um das Kernthema geht /proc. Übrigens ist es für diese Zeit etwas spät, aber wenn Sie die Antwort nach dem Posten der Frage herausfinden, ist es in Ordnung, sie selbst zu beantworten und sie anderen Personen zu überlassen, die möglicherweise auf ein ähnliches Problem stoßen.
Gilles 'SO - hör auf böse zu sein'

Antworten:


16

Wenn es ein nicht leeres Verzeichnis gibt, in dem Sie keine Schreibberechtigung haben, können Sie dessen Inhalt nicht entfernen.

$ mkdir foo
$ touch foo/bar
$ chmod a-w foo
$ rm -rf foo
rm: cannot remove `foo/bar': Permission denied

Der Grund dafür ist, dass die rmBerechtigungen wie bei jedem anderen Befehl gebunden sind und für das Entfernen bareine Schreibberechtigung erforderlich ist foo. Dies gilt nicht, wenn Sie rmals Root ausgeführt werden, da root immer die Berechtigung zum Entfernen einer Datei hat.

Um den Verzeichnisbaum löschbar zu machen, machen Sie alle darin enthaltenen Verzeichnisse beschreibbar (die Berechtigungen regulärer Dateien spielen beim Löschen keine Rolle rm -f). Sie können einen der folgenden Befehle verwenden:

chmod -R u+w here        # slow if you have a lot of regular files
find here -type d -exec chmod u+w {} +

Immer noch das gleiche Ergebnis "Operation nicht erlaubt"
Legionär
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.