Mik*_*e B 21 linux filesystems acl centos
CentOS 6.4
我试图更好地了解文件系统 ACL 规则的处理方式以及 ACL 规则的应用顺序。
例如,假设用户 bob 和 joe 属于名为 sales 的组。假设我有一份包含以下详细信息的销售文件:
[root@Maui ~]# getfacl /home/foo/docs/foo.txt
getfacl: Removing leading '/' from absolute path names
# file: home/foo/docs/foo.txt
# owner: jane
# group: executives
user:: r--
user:bob:rw-
user:joe:rwx
group:sales:rwx
group::r--
mask::rwx
other::---
Run Code Online (Sandbox Code Playgroud)
我的问题是,在这样的示例中如何处理权限以及哪些访问权限优先?
是否只有自上而下的搜索,并且首先匹配的规则才是适用的?
或者 Linux 是否根据相关用户的最具体规则强制执行访问?或者最严格和适用的规则优先?
slm*_*slm 16
这是一个广泛的话题,在这里涉及的太多了。我将向您推荐Linux 上的POSIX 访问控制列表白皮书,由 SuSE 实验室的 Andreas Grünbacher 整理。它在涵盖主题和分解主题方面做得非常好,因此您可以了解 ACL 的工作原理。
现在让我们看一下您的示例并将其分解。
现在让我们分解文件的权限/home/foo/docs/foo.txt。ACL 还封装了大多数人在 Unix 上应该熟悉的相同权限,主要是用户、组和其他位。所以让我们先把它们拉出来。
user:: r--
group::r--
other::---
Run Code Online (Sandbox Code Playgroud)
这些通常看起来像这样ls -l:
$ ls -l /home/foo/docs/foo.txt
-r--r----- 1 jane executives 24041 Sep 17 15:09 /home/foo/docs/foo.txt
Run Code Online (Sandbox Code Playgroud)
您可以使用这些 ACL 行查看谁拥有该文件以及该组是什么:
# owner: jane
# group: executives
Run Code Online (Sandbox Code Playgroud)
所以现在我们进入 ACL 的本质:
user:bob:rw-
user:joe:rwx
group:sales:rwx
Run Code Online (Sandbox Code Playgroud)
这表明用户bob有rw,而用户joe有rwx。还有一个组也有rwx类似joe的。这些权限就好像我们ls -l输出中的用户列有 3 个所有者(jane、bob 和 joe)以及 2 个组(executives 和 sales)。除了它们是 ACL 之外,没有其他区别。
最后mask一行:
mask::rwx
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我们没有屏蔽任何东西,它是敞开的。因此,如果用户 bob 和 joe 有以下几行:
user:bob:rw-
user:joe:rwx
Run Code Online (Sandbox Code Playgroud)
那么这些就是他们的有效权限。如果面具是这样的:
mask::r-x
Run Code Online (Sandbox Code Playgroud)
那么他们的有效权限是这样的:
user:bob:rw- # effective:r--
user:joe:rwx # effective:r-x
Run Code Online (Sandbox Code Playgroud)
这是一种用于限制以批发方式授予的权限的强大机制。
注意:文件所有者和其他权限不受有效权限掩码的影响;所有其他条目都是!因此,就掩码而言,与传统的 Unix 权限相比,ACL 权限是二等公民。
| 归档时间: |
|
| 查看次数: |
7473 次 |
| 最近记录: |