读取文件:权限被拒绝

6
我已经为该文件设置了以下权限:
----r--r-x 1 rick rick       50 Nov 20 18:39 hello_world

现在我尝试使用属于rick组的用户rick打开文件。
rick@ubuntu:~/Documents$ cat hello_world
cat: hello_world: Permission denied

为什么他不能阅读它?
2个回答

9
您的权限现在已经设置为仅对“组”和“其他人”进行读取。正如评论中所说,用户rick确实属于该组,但重要的是他是所有者,因此检查的权限是第一列上的权限,这恰好是---,即0。因此,不考虑group。请将权限更改为更正常的内容 :)
chmod 644 hello_world

那么您就能够阅读它。权限如下:

4 read
2 write
1 execute

6 表示读取和写入。


我正在尝试某些东西,但我想知道为什么它不起作用,因为Rick通常应该有读取权限,因为他在组内。 - Rick
但是为什么所有者没有设置权限呢? - C.B.
@user3013395 但他确实是所有者,因此适用于他的权限是前三个。 - fedorqui
哦,好的,我现在明白了。我忘记了那个。谢谢! - Rick

9

由于访问过程的用户ID是“rick”,因此仅检查拥有者权限,禁止读取。只有当访问进程的用户ID与文件所有者不同时,内核才会考虑它可能是文件组的成员。

作为文件拥有者运行的任何进程都可以使用chmod系统调用将其权限位设置为他们想要的任何值,因此拒绝对拥有者进行读取或写入访问对于安全措施无效,但仍然可以作为有用的安全措施。换句话说,您可以使用权限位防止文件被其所有者“意外”覆盖,但不能“故意”覆盖。


+1:我在想为什么用户如果在可以阅读的组中,就不能阅读。(另外,昵称不错 ;)) - Zac

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