本教程操作环境: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中文网其它相关文章!

推荐内容