scd*_*dmb 6 linux acl file-permissions
ACL 和标准文件权限似乎是同步的:
$ getfacl test.cpp
# file: test.cpp
# owner: scdmb
# group: scdmb
user::rw-
group::rw-
other::r--
$ ls -l test.cpp
-rw-rw-r-- 2 scdmb scdmb 173 Jan 1 1970 test.cpp
Run Code Online (Sandbox Code Playgroud)
但是,正如我所读到的,inode 中有两个位置可以保存文件权限(i_mode 字段)以及放置 ACL 的这些扩展文件属性。那么当我访问文件时,使用哪些文件权限 - 标准还是 ACL?或者,这可能是以不同方式呈现的同一事物?
从getfacl 联机帮助页:
getfacl 的输出格式如下:
1: # file: somedir/
2: # owner: lisa
3: # group: staff
4: user::rwx
5: user:joe:rwx #effective:r-x
6: group::rwx #effective:r-x
7: group:cool:r-x
8: mask:r-x
9: other:r-x
10: default:user::rwx
11: default:user:joe:rwx #effective:r-x
12: default:group::r-x
13: default:mask:r-x
14: default:other:---
Run Code Online (Sandbox Code Playgroud)
第4、6、9行分别对应文件模式权限位的用户、组等字段。这三个称为基本 ACL 条目。第 5 行和第 7 行是命名用户和命名组条目。第 8 行是有效权限掩码。此项限制授予所有组和指定用户的有效权限。(文件所有者和其他权限不受有效权限掩码的影响;所有其他条目都受此影响。)第 10--14 行显示与该目录关联的默认 ACL。目录可能有一个默认的 ACL。常规文件从不具有默认 ACL。
事实上,你只显示带有::和不带有的行<user|group|other>:<name>:<perms>表明你没有扩展的 ACL。对于这个特定文件,您只是使用getfacl一种奇特的方式来获取与ls -la(用户/组/其他权限位,也称为“基本 ACL”)中显示的相同信息。
至于其权限使用:简单的答案是它依赖于订单的访问控制列表。有关详细信息,请参阅此处和此处。通常,如果拒绝首先出现在 ACL 列表中,则以后不可能通过显式允许返回权限。拒绝总是优先的。
还有更多的引用甚至更长的文章在这里上Unix.SE.
| 归档时间: |
|
| 查看次数: |
7783 次 |
| 最近记录: |