在unix中删除文件需要什么权限?

What permissions are needed to delete a file in unix?

我目前有一个目录(udir),它对所有用户只有读写权限。此目录包含两个文件 (file1 & file2)

我最初虽然只需要写访问权限(在目录上)我就可以通过 (rm udir/file1) delete/remove 一个文件但是 rm 命令会拒绝我访问.当我设置读取、写入和执行权限时,rm 命令有效。

显然还需要执行权限,但为什么呢??

我认为对目录的执行访问是为了能够使其成为一个工作目录并搜索其内容并访问子目录。

您实际上需要目录的 readwriteexecute 权限,而不是文件本身的权限,因为考虑到目录的权限影响,操作已完成。

可以在 this link 上找到一份很好的文档,其中在 目录的特殊注意事项 部分中提到了以下内容:

To delete a file requires both write (to modify the directory itself) and execute (to stat() the file's inode) on a directory.  Note a user needs no permissions on a file nor be the file's owner to delete it!