Beispiel:

Beispiel:

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_DIRschlä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.

rmdirfunktioniert nicht bei nicht leeren Verzeichnissen und ohne Schreibzugriff haben Sie keine Möglichkeit, es zu leeren.

verwandte Informationen