例子:

例子:

我知道删除文件取决于我对封闭目录的权限,而不是文件本身,参见例如这里

但是非空目录呢?使用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不适用于非空目录,并且没有写访问权限,他们无法将其变为空。

相关内容