In der folgenden Situation ls -alh
total 0
drwxrwx--- 1 user http 20 Nov 30 08:08 .
drwxrws--- 1 user http 310 Nov 30 08:07 ..
drwx------ 1 http http 10 Nov 30 08:08 empty-subdir
drwx------ 1 http http 12 Nov 30 08:08 non-empty-subdir
wo zwei Unterverzeichnisse existieren (nicht in meinem Besitz), die ich aufführe als:
sudo ls empty-subdir -alh
total 0
drwx------ 1 http http 10 Nov 30 08:08 .
drwxrwx--- 1 user http 20 Nov 30 08:08 ..
sudo ls non-empty-subdir -alh
total 0
drwx------ 1 http http 12 Nov 30 08:08 .
drwxrwx--- 1 user http 20 Nov 30 08:08 ..
drwx------ 1 http http 0 Nov 30 08:08 subdir
Der Unterschied zwischen den beiden Unterverzeichnissen besteht darin, dass das nicht leere Verzeichnis non-empty-subdir
einen Ordner enthält.
Meine Frage ist, ob rm -rf
ich beim Versuch , die Unterverzeichnisse zu entfernen, beabsichtigt Ergebnisse erhalte:
$ rm empty-subdir -rf
$ rm non-empty-subdir -rf
rm: cannot remove 'non-empty-subdir': Permission denied
$ ls -alh
total 0
drwxrwx---+ 1 user http 10 Nov 30 08:14 .
drwxrws---+ 1 user http 310 Nov 30 08:07 ..
drwx------+ 1 http http 12 Nov 30 08:08 non-empty-subdir
Es scheint, dass der Benutzer mit Schreibberechtigungen für ein Verzeichnis einen Eintrag für eine Datei oder ein leeres Unterverzeichnis eines anderen Benutzers entfernen darf, jedoch kein nicht leeres Unterverzeichnis.
Eine ideale Antwort auf diese Frage würde Informationen liefern wie:
- eine Bestätigung, dass das beschriebene Verhalten auf anderen Maschinen reproduzierbar ist (und nicht nur Macken meiner vermasselten Box)
- eine Begründung, um dieses Verhalten zu erklären (z. B. gibt es Anwendungsfälle?)
- eine Übersicht, wenn es Unterschiede zwischen Systemen gibt (BSD, Linux ....)
Update : In Bezug auf den Kommentar von Ipor Sircer habe ich das Szenario ohne ACL-Funktionen erneut getestet und es ist dasselbe. Ich habe daher die Frage geändert, um die +
es aus den Auflistungen zu entfernen, damit nicht die Idee entsteht, dass das Verhalten mit ACLs zusammenhängt.
+
Zeichen bedeutet, dass ACLs (Access Control List) -Berechtigungen vorhanden sind, die von aufgelistet werden könnengetfacl <directory>
.