ACL的使用
ACL即Access Control List 主要的目的是提供传统的owner,group,others的read,write,execute权限之外的具体权限设置,ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助。如,某一个文件,不让单一的某个用户访问。
ACL使用两个命令来对其进行控制
getfacl:取得某个文件/目录的ACL设置项目
setfacl:设置某个文件/目录的ACL设置项目
setfacl 参数
-m:设置后续acl参数
-x:删除后续acl参数
-b:删除全部的acl参数
-k:删除默认的acl参数
-R:递归设置acl,包括子目录
-d:设置默认acl 是让子目录继承父目录权限
例:创建一文件test,将其权限修改为777,并查看其默认ACL权限配置
[root@ www.linuxidc.com ~]# touch /test [root@ www.linuxidc.com ~]# chmod 777 /test [root@ www.linuxidc.com ~]# getfacl /test //获得文件的ACL权限 getfacl: Removing leading '/' from absolute path names # file: test //文件名 # owner: root //文件所属者 # group: root //文件所属组 user::rwx //文件所属者权限 group::rwx //同组用户权限 other::rwx //其它者权限
如果用户soft 想对test目录有读写权限,一种是将soft用户加入wdj组中。另一种是将other权限改为rw
如果想让此目录下的文件或目录继承父目录权限,则每次要chmod -R ....一下
现在可以使用setfacl解决以上问题
#setfacl -R -m u:soft:rwx test
这样soft用户就可以操作test目录
setfacl -d --set u:soft:rwx test
-d是让子目录继承父目录权限
使用getfacl命令查看acl权限
[soft@node2 data]$ getfacl test # file: test # owner: wdj # group: wdj user::rwx user:soft:rwx group::rwx mask::rwx other::--- default:user::rwx default:user:soft:rwx default:group::rwx default:mask::rwx default:other::---
setfacl -x u:soft test
去掉单个用户的权限
setfacl -b test
删除test目录的所以acl权限