云服务器

1. 什么是ACL?
前面的内容中,我们讲到传统的权限仅有三种身份(owner,group,others)搭配三种权限(r,w,x)以及三种特殊的权限(SUID,SGID,SBIT),随着应用的发展,这些权限组合已不能适应现在复杂的文件系统权限控制要求。

ACL是Access Control List的缩写,主要的目的是在提供传统的owner,group,others的read,write,execute权限之外的局部权限设定。ACL可以针对单个用户,单个文件或目录来进行r,w,x的权限设定,特别适用于需要特殊权限的使用情况。

ACL主要针对用户(user)、用户组(group)、以及掩码(mask)方面来控制权限。

简单地来说,ACL就是可以设置特定用户或用户组对于一个文件/目录的操作权限。
2. 查看系统是否支持ACL

# dumpe2fs /dev/sda1 |grep acl
Default mount options:    user_xattr acl
# mount -o remount,acl /dev/sda1

3. ACL权限的查看与设置
getfacl:查看文件/目录的ACL设定内容
setfacl:设置文件/目录的ACL内容
相关参数说明:
语法:setfacl [-bkRd] [{-m|-x} acl参数] 文件名
-m :设置后续的acl参数
-x :删除后续的acl参数
-b :删除所有的ACL设定参数
-R :递归设置acl参数
-d :设置预设的acl参数(只对目录有效,在该目录新建的文件也会使用此ACL默认值)
-k :删除预设的ACL参数

设置格式如下
[d[efault]:] u[ser]:uid [:perms]
[d[efault]:] g[roup]:gid [:perms]
[d[efault]:] m[ask][:] [:perms]

设置用户ACL权限
# setfacl -m u:user1:rwx install.log --多个用户用逗号隔开

设置ACL的mask
# setfacl -m m::r install.log

设置默认ACL权限
# setfacl -m d:user1:rw /test

删除ACL权限
# setfacl -x u:user1 install.log
# setfacl -b install.log






提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: