POSIX访问控制列表(ACL)
ACL:允许向文件分配细化的权限
文件所有者可以在单个文件或目录上设置ACL,新文件和子目录自动从父目录默认acl中继承acl设置
文件系统挂载选项
文件系统需要挂在已启用的ACL支持:XFS文件系统内置有ACL支持,在红帽7中ext4文件系统默认启用了acl选项,而在红帽早期版本中创建的ext4文件系统可能会通过挂载请求包含acl选项,或在超级块中设置此选项
查看和解释ACL权限
ls �Cl:仅输出最少的ACL设置详细信息
+ :表示此文件有相关联的ACL设置
● 使用chmod更改具有ACL的文件的组权限,则不会更改组所有者权限,而是更改acl掩码,若想要更改组所有者权限则使用setfacl �Cm g::perms file
查看文件acl :getfacl file
1.打开注释条目:识别文件名、所有者、组所有者,若有其他标志,会出现第四行显示
2.用户条目:
3.组条目:
4.掩码:显示指定用户,组所有者和指定组提供的最大权限
5.其他条目:
查看目录acl:getfacl /directory
1:打开注释条目:与文件acl权限相似
2:标准acl:与文件acl相似,区别:含有执行权限,以允许目录搜索权限
3.默认用户条目:默认指定用户将会自动获取应用到新文件或子目录的默认acl
4.默认组条目:指定组会自动获得默认acl
5.默认acl掩码条目:默认掩码为所有新建文件或目录提供最大权限
6.默认其他条目
●getfacl的输出可作为setfacl的输入,使用getfacl �CR /directory生成目录及其内容的输出,将此输出传递给setfacl �Cset-file=file
Acl掩码:可授予指定用户、指定组的最大权限
若未显示设置时,会自动添加,也可从父目录默认掩码中继承默认掩码
Acl权限优先级:决定一个进程能否访问文件
若以文件所有者身份运行进程,则应用文件的用户acl权限
更改acl文件权限
Setfacl:添加、修改、删除文件或目录的标准acl
r:读取
w:写入
x:执行
-:缺少相关权限
X:以递归设置acl时,若文件还没有相关执行权限,则只应设置目录的执行权限
m:通过命令行添加新的acl或修改acl
R:以递归方式将acl应用到目录结构和文件上
x:删除特定acl条目,其他acl条目不受影响
b:删除文件或目录所有的acl,包括目录默认的acl
掩码只能在未设定其他acl的情况下删除,因此必须在最后删除
--set 或 �Cset-file:完全替换文件的acl设置
添加或修改用户acl
setfacl�Cm u:username:rwx file 若用户名为空,指文件的所有者,也可以是uid
添加或修改组acl或指定组acl
setfacl �Cm g:name:rwx file name空,指组所有者 ,可以gid
设置明确的acl掩码
Setfacl -m m::r flie 添加掩码值,为只读
-n 或-m m::perms 避免重新计算掩码值
控制默认的acl文件权限
目录默认acl由所有新文件和新子目录自动继承
目录仍需要具备标准的acl才能进行访问权限,因为默认acl不会对目录实施访问权限控制,它们提供acl权限继承支持