当Linux的传统权限(user,group,others)不够用时,可以通过ACL权限实现相应的设定。比如green文件夹的owner为Green,group为Market,且others无任何权限。但是有一个项目,Sale的Tom要查看Green的文件夹中的文件,但是Tom有不能加入Market组,因为Tom不能获得Market的组权限,不然Tom就能看到Market组成员所能看到的文件。这个时候就能通过ACL权限实现。
dumpe2fs -h 分区 //查看是否支持ACL
[root@server ~]# dumpe2fs -h /dev/sda5
dumpe2fs 1.41.12 (17-May-2010)
...
Default mount options: user_xattr acl //支持ACL,Linux默认支持ACL
...
mount -o remount,acl 磁盘分区 //临时开启分区ACL权限
vim /etc/fatab //永久开启分区ACL权限
getfacl 文件名 //查看文件的ACL权限
[root@server ~]# getfacl install.log
# file: install.log
# owner: root
# group: root
user::rw-
group::r--
other::r--
setfacl 选项 文件名 //设定ACL权限
-m 设定ACL权限
-x 删除指定的ACL权限
-b 删除所有的ACL权限
-d 设定默认的ACL权限
-k 删除默认的ACL权限
-R 递归设定ACL权限
#setfacl -m u:xm:rx /project //设定用户的ACL权限,u:用户名:权限
#setfacl -m g:md:rx /project //设定组的ACL权限,g:组名:权限
#setfacl -m m:rwx /project //设定最大有效权限,m:权限
#setfacl -x u:xm /project //删除用户的ACL权限
#setfacl -x g:md /project //删除组的ACL权限
#setfacl -m d:u:xm:rx /project //设定默认用户有效权限,d:u:用户名:权限
#setfacl -m d:g:md:rx /project //设定默认组有效权限,d:g:组名:权限
#setfacl -k /project //删除所有默认的权限
#setfacl -b /project //删除所有的ACL权限设定,包括默认的有效权限设定