Von woanders kopierte Verzeichnisse können nicht gelöscht werden, CentOS 6

Von woanders kopierte Verzeichnisse können nicht gelöscht werden, CentOS 6

Eine unserer Benutzerinnen hat versehentlich einige Systemverzeichnisse (z. B. /lib) mit dem Befehl in ihr Home-Verzeichnis kopiert cp -r /lib .und kann diese Verzeichnisse anschließend nicht löschen. Der Befehl rm -rf ./libgibt eine Liste mit Fehlern zurück, die „Zugriff verweigert“ lauten (eine für jede Datei, glaube ich). Ich bin sicher, dass sowohl der Kopier- als auch der Löschbefehl denselben Benutzernamen verwenden und dass in der Zwischenzeit keinerlei Berechtigungsänderungen vorgenommen wurden.

Ich kann diese Verzeichnisse wahrscheinlich mit Root-Rechten löschen, aber ich würde gerne wissen, warum das passiert. Ist das ein Fehler des von uns verwendeten Centos 6.8? Oder warum kann ein Benutzer die Verzeichnisse, die er in seinem Home-Verzeichnis erstellt hat, nicht löschen?

Antwort1

cp -rKopiert standardmäßig die Berechtigungsmodi. Wenn also /libnicht vom Eigentümer beschreibbar war, ./libwird es auch nicht beschreibbar sein. Beim Versuch, den Inhalt eines nicht beschreibbaren Verzeichnisses zu entfernen, wird die Berechtigung verweigert, selbst wenn Sie der Eigentümer davon sind. Sie können die Berechtigungen mit korrigieren chmod -R u+w ./lib.

Hier ist eine Demo:

barmar@dev:~/test.dir$ mkdir subdir
barmar@dev:~/test.dir$ touch subdir/foo
barmar@dev:~/test.dir$ chmod a-w subdir
barmar@dev:~/test.dir$ cp -r subdir newsubdir
barmar@dev:~/test.dir$ rm -rf newsubdir
rm: cannot remove `newsubdir/foo': Permission denied
barmar@dev:~/test.dir$ chmod a+w newsubdir
barmar@dev:~/test.dir$ rm -rf newsubdir
barmar@dev:~/test.dir$ 

verwandte Informationen