在Unix系统中删除文件需要哪些权限?

20

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

最初我认为只需要在目录上有写入权限就可以通过 (rm udir/file1) 删除/移除文件,但rm命令会提示访问被拒绝。当我将权限设置为读、写和执行时,rm命令才能起作用。

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

我以为对目录的执行权限是为了使它成为一个工作目录,搜索其内容并访问子目录。

1个回答

31

实际上,您需要在目录上拥有读取写入执行权限,而不是文件本身,因为操作是考虑到目录的权限效果。

可以在此链接中找到很好的文档,其中在目录的特殊注意事项部分中提到以下内容:

要删除文件,需要对目录具有写入权限(以修改目录本身)和执行权限(以 stat() 文件的 inode)。请注意,一个用户不需要对文件拥有任何权限或成为文件的所有者即可删除该文件!


1
你是不是想写“读取”和“执行”权限? - silkfire
1
很棒的文档 @nortontgueno - Shubham Saroj
1
@silkfire,这让我更加困惑,因为链接中提到了writeexecute,但你问他是否意味着readexecute... - davisdev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接