ACL权限是如何处理的,以何种顺序应用于给定的用户操作?


21

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::---

我的问题是,在这样的示例中如何处理权限?哪些访问权限优先?

是否只有一个自上而下的搜索,并且首先匹配的是哪个规则?

还是Linux根据有关用户的最具体规则强制执行访问?还是最严格和适用的规则优先?

Answers:


15

这是一个广泛的主题,在这里涉及太多。我将带您参考SuSE Labs的AndreasGrünbacher撰写的Linux上POSIX访问控制列表白皮书。它很好地涵盖了主题并将其分解,因此您了解ACL的工作原理。

你的例子

现在,让我们看一下您的示例并将其分解。

  • 组(销售)
  • 销售小组成员(鲍勃,乔)

现在,让我们分解一下file的权限/home/foo/docs/foo.txt。ACL还封装了大多数人在Unix上应该熟悉的相同权限,主要是User,Group和Other位。因此,让我们先将它们拉出。

user:: r--
group::r--
other::---

这些通常在中看起来像这样ls -l

$ ls -l /home/foo/docs/foo.txt
-r--r----- 1 jane executives 24041 Sep 17 15:09 /home/foo/docs/foo.txt

您可以使用以下ACL行查看谁拥有文件,以及该文件组是什么:

# owner: jane
# group: executives

因此,现在我们深入了解ACL的细节:

user:bob:rw-
user:joe:rwx
group:sales:rwx

这表明用户bob拥有rw,而用户joe拥有rwx。还有一个小组也rwx与乔相似。这些权限就像我们ls -l输出中的user列具有3个所有者(jane,bob和joe)以及2个组(主管和销售)一样。除了它们是ACL之外没有其他区别。

最后mask一行:

mask::rwx

在这种情况下,我们不会掩盖任何东西,它是敞开的。因此,如果用户bob和joe有以下几行:

user:bob:rw-
user:joe:rwx

这些就是他们的有效权限。如果面具是这样的:

mask::r-x

那么他们的有效权限将是这样的:

user:bob:rw-    # effective:r--
user:joe:rwx    # effective:r-x

这是减少以批发方式授予的权限的强大机制。

注意:文件所有者和其他权限不受有效权限掩码的影响;所有其他条目都是!因此,相对于掩码,与传统的Unix权限相比,ACL权限是二等公民。

参考文献

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.