![例子:](https://rvso.com/image/134426/%E4%BE%8B%E5%AD%90%EF%BC%9A.png)
我知道刪除文件取決於我對封閉目錄的權限,而不是文件本身,參見例如這裡
但是非空目錄呢?使用rm -rf NON_EMPTY_DIR
失敗,因為目錄內的檔案無法刪除。保持目錄非空且不可寫入是防止其他使用者刪除該資料夾的安全方法嗎?
例子:
# 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
答案1
他們可能無法刪除它,但可以重命名它或將其移動到其他地方。它不會消失,但看起來會是這樣。
答案2
有人可以在沒有寫入權限的情況下從全寫目錄中刪除我的非空目錄嗎?
不。
保持目錄非空且不可寫入是防止其他使用者刪除該資料夾的安全方法嗎?
是的。
rmdir
不適用於非空目錄,並且沒有寫入存取權限,他們無法將其變為空。