安装软件包
yum install -y acl
配置acl权限
用于acl权限管理的命令主要有两个:
setfacl //设置acl权限 getfacl //查看acl权
首先来看setfacl
常用参数:
-b:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留。 -d:设定默认的acl规则 -R:递归的对所有文件及目录进行操作。 -m:修改文件或目录的acl规则。 -x:删除指定acl规则。
以上只列出常用参数,详细命令帮助可参考:http://man.linuxde.net/setfacl
举个例子:想让user1这个用户对~/test目录拥有全部权限,除了修改所有者或所属组之外还能怎样呢?
且往下看。
setfacl -Rm u:user1:rwx ~/test //使user1用户对test目录拥有全部权限。
执行以上命令后user1用户即可任意操作~/test目录。
来看一下这条命令,setfacl,设置acl权限、参数R代表递归应用,m修改权限、u代表用户,如果想赋予某个组acl权限就用g,:后边接的要赋予acl权限的用户名或组名(不填则修改所有者或所属组的acl权限),紧接着下一个冒号后面跟的就是要赋予这个用户的权限了、最后接要操作的目录或文件名,就这么简单。
再来看一个例子:
setfacl -m d:u::rwx ~/test //为test目录下新建的文件或目录设置默认acl权限,对所有用户生效
如果写成这样:
setfacl -m d:u:user1:rwx ~/test
这条命令执行后可以达到什么目的呢?我猜,聪明的读者一定猜到了:是给user1创建的文件或目录设置默认acl权限。
如果你是这样想的,那么恭喜你,猜错了。
这条命令实际的意义其实是给所有用户创建的文件或目录都加上user1这个用户的rwx的acl权限~
最后再来看下如何删除acl权限
setfacl -x d:u:user1 ~/test //删除~/test目录中关于user1的默认acl权限
setfacl -b ~/test //删除~/test目录上所有的acl权限
查看acl权限
查看acl权限使用getfacl命令
getfacl ~/test //查看~/test目录的acl权限
会输入类似如下内容
另外,当我们执行ls -l时会发现,拥有acl权限的文件或文件夹其linux默认权限后面多一个“+”号。
最后需要注意的是:linux默认权限是优于acl权限的,就是说当liux默认权限和acl权限同时存在时,系统会优先考虑linux默认权限。