1.ACL允许向文件分配细化权限,除了标准的文件所有者、组所有者和其他文件权限之外,还可以向用户或指定组,以及由UID或GID确定的用户或组授予权限,权限标志有r、w、x。文件所有者可以在单个文件或目录上设置ACL,新文件和子目录可以自动从父目录默认ACL中继承ACL设置,与常规文件的访问规则相似,父目录层次结构需要至少设置其他执行权限,以便启用指定用户和指定组的访问权限。若权限字符串的末尾是+,则表示此文件有相关联的ACL设置。可以使用chmod更改具有ACL的文件的组权限,则不会更改组所有者权限,而是更改ACL掩码

用户:显示用户ACL设置,其与标准的用户文件设置相同:rwx

组:显示当前的ACL掩码设置,而不是组所有者设置:rw

目录上的ACL权限与文件上的不同之处:目录上的ACL包含了执行权限,以允许目录搜索权限

其他:显示其他ACL设置,其与标准的其他文件设置相同,没有访问权限

2.相关命令

a. getfacl txt.1(文件名)    /查看文件ACL

b. 掩码条目:mask::rw- (掩码设置显示可能为所有指定用户、组所有者和指定组提供的最大权限)

c. 默认掩码条目:default:mask::rwx(掩码设置显示为所有新建文件或目录【具有指定用户ACL、组所有者ACL或指定组ACL】的初始最大权限:读取和写入新文件,对新子目录的执行权限,但是新文件没有执行权限)例:

[user@system1 Desktop]$ getfacl txt1

# file: txt1

# owner: user

# group: user

user::r--

user:aaa:rw-

group::r--

group:aaa:rwx

mask::rwx

other::---

d. setfacl -m(-M) u/g:name:权限 文件名或目录  /添加或更改用户/组ACL或指定用户/组ACL(若name为空,则表示它适用于文件所有者,否则它可以是用户名或UID值

e.setfacl -m o::- 文件名  /表示添加或更改其他ACL,-表示其他用户没有权限

f.setfacl -m u::rwx,g:soder:rx,o::- txt1  /添加多个条目,且以逗号隔开(文件所有者具有rwx权限,指定组soder具有rx权限,其他没有权限)

g.setfacl -R -m u:name:rX 目录  /递归ACL修改,它会将用户name添加到目录和所有现有文件和子目录中,从而授予只读和条件执行权限 例:

[root@system1 ~]# getfacl mm

# file: mm

# owner: root

# group: root

user::rwx

user:aaa:r-x

group::r-x

mask::r-x

other::r-x

[root@system1 ~]# getfacl mm/txt

# file: mm/txt

# owner: root

# group: root

user::rw-

user:aaa:r--

group::r--

mask::r--

other::r--

h.setfacl -x u:name,g:name txt  /删除ACL(从文件或目录ACL列表中删除指定用户和指定组)

i.setfacl -b txt   /删除文件或目录的所有ACL  

控制默认ACL文件权限:目录可以设置默认ACL,这些ACL会由所有新文件或新子目录自动继承,可以针对各个标准ACL设置来设置默认ACL权限,其中包括默认掩码。默认ACL不会对目录实施访问权限控制,他们仅提供权限继承支持。

j.setfacl -m d:u:name:rx 目录    /添加一个指定用户,它拥有对子目录的rx权限 例:

[root@system1 ~]# setfacl -m d:u:aaa:rx mm

[root@system1 ~]# ll mm

total 4

-rw-r--r--+ 1 root root 0 Nov 28 20:42 txt

[root@system1 ~]# getfacl mm

# file: mm

# owner: root

# group: root

user::rwx

group::r-x

mask::r-x

other::r-x

default:user::rwx

default:user:aaa:r-x

default:group::r-x

default:mask::r-x

default:other::r-x

k.setfacl -x d:u:name 目录  /删除添加的默认ACL

l.setfacl -k /目录      /删除目录的所有默认ACL

m.setfacl -b /目录     /删除目录的所有ACL

3.ACL权限优先级

若是以文件所有者身份运行进程,则应用文件的用户ACL权限

若是以指定用户ACL条目中列出的用户身份运行进程,则应用指定用户ACL权限(只要掩码允许)

若是以与文件的组所有者相匹配的组身份运行进程,或以具有显式指定组ACL条目的组身份运行进程,则应用相匹配的ACL权限(只要掩码允许)

否则,将应用文件的其他ACL权限