这是一个广泛的主题,在这里涉及太多。我将带您参考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权限是二等公民。
参考文献