![Linux 文件权限和访问控制查询](https://linux22.com/image/1238518/Linux%20%E6%96%87%E4%BB%B6%E6%9D%83%E9%99%90%E5%92%8C%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6%E6%9F%A5%E8%AF%A2.png)
假设我是用户鲍勃在团体中用户。有这个文件:
-rw----r-- 1 root users 4 May 8 22:34 testfile
第一个问题:
为什么 bob 不能读取该文件,因为其他人可以读取它?是不是因为如果您被组拒绝,那么您就会被其他人自动列入黑名单?我一直以为最后 3 位也优先于用户/组权限位,我想我错了……
第二个问题:
这是如何实现的?我想它与第一个查询有关,但它与访问控制有何关系?它与 ACL 的工作方式/查询方式有关吗?只是想了解这 9 个权限位在 Linux 中是如何实际实现/使用的。
多谢。
答案1
答案是,适用于用户的最具体的权限优先。
- 用户位决定是否适用于请求访问的用户。
- 如果用户不是所有者但在组中,则适用组位。
- 仅当前两组不适用时,其他位才适用。
因此,它不是权限的联合,而是从特定到通用的优先级。
答案2
很简单,我们必须将权限分成 3 个部分。
所有者: rw-
群组(用户):---
所有人:r—
对于所有者,我们授予读写权限。对于组,我们明确不提供访问权限。对于所有人,我们提供读取权限。
这里的问题是,您明确拒绝了文件所属组(组:用户)的用户以任何形式访问该文件。在 Linux 中,这些权限不是层次结构的一部分,在这里它是一个平面结构。您需要将您的权限更改为 rw-r--r--,以便包括您的“用户”组在内的所有人都可以读取该文件。