Ich weiß, dass das Löschen einer Datei von den Berechtigungen abhängt, die ich für das umgebende Verzeichnis habe, und nicht von der Datei selbst.siehe zB hier
Aber was ist mit einem nicht leeren Verzeichnis? Die Verwendung rm -rf NON_EMPTY_DIR
schlägt fehl, da die Dateien im Verzeichnis nicht gelöscht werden können. Ist es eine sichere Möglichkeit, andere Benutzer am Löschen des Ordners zu hindern, wenn das Verzeichnis nicht leer und für andere nicht beschreibbar bleibt?
Beispiel:
# Create write-all outer dir
mkdir outer
chmod 777 outer
# Create two subdirectories, one of which is empty, one not,
# and none are writable by anyone
mkdir outer/{non-,}empty
touch outer/non-empty/file
chmod 555 outer/*
ls -la outer
## drwxrwxrwx 4 user user 80 May 31 15:12 .
## [ .. does not matter here ]
## dr-xr-xr-x 2 user user 40 May 31 15:12 empty
## dr-xr-xr-x 2 user user 60 May 31 15:12 non-empty
rm -rf outer/empty
# Succeeds
rm -rf outer/non-empty
# rm: cannot remove outer/non-empty/file: Permission denied
Antwort1
Sie können es möglicherweise nicht löschen, aber umbenennen oder an einen anderen Ort verschieben. Es wird nicht weg sein, aber es wird so aussehen.
Antwort2
Kann jemand mein nicht leeres Verzeichnis aus einem Schreibzugriffsverzeichnis löschen, ohne Schreibberechtigung dafür zu haben?
NEIN.
Ist es eine sichere Möglichkeit, andere Benutzer am Löschen des Ordners zu hindern, wenn das Verzeichnis nicht leer und für andere nicht beschreibbar gehalten wird?
Ja.
rmdir
funktioniert nicht bei nicht leeren Verzeichnissen und ohne Schreibzugriff haben Sie keine Möglichkeit, es zu leeren.