我不明白目录的权限是如何工作的。例如:
r
:我可以列出目录中的所有当前文件(例如ls
)
w
:我可以修改目录中的文件,删除它并创建一个新的子目录
x
:我可以访问目录(例如cd
)
如果我在以下情况下是对的:
-w-
- 如果我已经知道某个文件的名称,我可以删除该文件吗?
- 即使我没有写入权限,也可以删除文件吗?
另一个问题。如果出现粘性位(例如/tmp
),如果我不是文件的所有者,我将无法删除或重命名文件:为了做到这一点,文件权限还不够吗?
答案1
x
目录的权限允许dir
您访问文件dir/file
。如果没有它,该w
权限根本无法帮助您,因为要创建或删除文件,您需要能够指向它们。
但是,如果您-wx
在该目录上,那么如果您知道文件的名称,则可以删除文件(并创建新文件)。
读取目录,即列出内容不需要访问任何dir/file
,只需访问dir
本身,因此如果您有r--
,您可以获得文件列表。
文件的权限不会影响删除文件,即使是在粘性目录中,至少在我的 Linux 上也是如此。手册页 (修改(1))表示您需要成为文件或目录的所有者才能从粘性目录中删除或重命名文件。
/tmp$ ls -l test
-rw-rw-rw- 1 root root 0 Aug 19 16:17 test
/tmp$ rm test
rm: cannot remove 'test': Operation not permitted