本教程操作环境:linux7.3系统、Dell G3电脑。
ACL 是什么
(资料图)
ACL的全称是 Access Control List (访问控制列表) ,一个针对文件/目录的访问控制列表。它在UGO权限管理的基础上为文件系统提供一个额外的、更灵活的权限管理机制。它被设计为UNIX文件权限管理的一个补充。
ACL允许你给任何的用户或用户组设置任何文件/目录的访问权限。
在 Linux 系统中, ACL 可实现对单一用户设定访问文件的权限。也可以这么说,设定文件的访问权限,除了用传统方式(3 种身份搭配 3 种权限),还可以使用 ACL 进行设定。
ACL有什么用
既然是作为UGO权限管理的补充,ACL自然要有UGO办不到或者很难办到的本事,例如:
可以针对用户来设置权限
可以针对用户组来设置权限
子文件/目录继承父目录的权限
检查是否支持ACL
ACL需要Linux内核和文件系统的配合才能工作,当前我们能见到的大多数Linux发行版本默认都是支持的。但最好还是能够先检查一下:
sudo tune2fs -l /dev/sda1 |grep “Default mount options:”Default mount options: user_xattr acl
我们能够看到默认情况下(Default mount options:)已经加入 acl 支持了。
ACL针对普通文件的设置:
setfacl命令(set设置,f文件file,acl访问控制列表)
添加文件的ACL
setfacl -m u:zx:--- 1243.txt (zx用户对1243.txt文件没有任何权限)setfacl -m g:zx:--- 1243.txt (zx组对1243.txt文件没有任何权限)
-m参数表示modify修改,u表示针对user用户设置,zx用户名称,---表示设置的权限信息
查看文件的ACL权限
getfacl 1243.txt (查看文件的ACL权限信息)
删除文件的ACL权限
setfacl -x u:zx 1243.txt
在设置了ACL权限后,通过查看文件信息可以看到文件权限信息列有个“+”号
移除文件的ACL权限信息:
setfacl -b 1243.txt
(移除1342.txt的ACL权限信息)
ACL针对目录文件的设置
对目录文件设置ACL,是为了对目录文件里面,创建的文件进行权限控制.
mask:表示用户的最大权限范围
setfacl -m d:u:zx:r-- 123
d:default(设定默认)
用root在根目录下创建123/bbb目录文件并设置用户zx有读行权限:
可以看到后续的新建123文件都继承了之前的bbbACL权限设置zx只有读权限
相关推荐:《Linux视频教程》
以上就是linux ACL有什么用的详细内容,更多请关注php中文网其它相关文章!