Linux中ACl权限- getfacl, setfacl

ACL 是 Access Control List 的缩写,主要的目的是在提供传统的 owner,group,others 的 read,write,execute 权限之外的细部权限设定。

ACL 可以针对单一使用者,单一文件或目录来进行 r,w,x 的权限规范,对于需要特殊权限的使用状况非常有帮助。

setfacl 指令用法

[root@study ~]# setfacl [-bkRd] [{-m|-x} acl参数]目标档名
选项与参数:
-m :设定后续的acl 参数给档案使用,不可与-x 合用;  # mask:有效权限
-x :删除后续的acl 参数,不可与-m 合用;
-b :移除『所有的』 ACL 设定参数;
-k :移除『预设的』 ACL 参数,关于所谓的『预设』参数于后续范例中介绍;
-R :递回设定acl ,亦即包括次目录都会被设定起来;
-d :设定『预设acl 参数』的意思!只对目录有效,在该目录新建的资料会引用此预设值  #为目录添加默认的acl权限,此目录下创建目录和文件都会继承此权限信息
  • 删除ACL用户权限:setfacl -x u:用户名 文件名
  • 删除ACL组权限:setfacl -x g:组名 文件名
  • 删除整个ACL权限:setfacl -b 文件名
针对用户的设定方式:『 u:用户名:权限』

设定前请加上 -m 这个选项。一个档案设定了ACL 参数后,他的权限部分就会多出一个 + 号

//设定user对testfile有rwx权限
setfacl -m u:user:rwx testfile 

//设定user对testdirectory目录下所有文件有RWX权限
setfacl -R -m u:user:rwx testdirectory 

//去掉user对testdirectory的x权限
setfacl -x u:user testdirectory/   

//去掉所有acl权限
setfacl -b 

//为testdirectory目录添加默认的acl权限,此目录下创建目录和文件,user都有rwx权限
setfacl -d -m u:user:rwx testdirectory/
针对群组的权限设定:『 g:群组名:权限』
#设定规范:『 g:[群组列表]:[rwx] 』,例如针对mygroup1的权限规范rx : 
[root@study ~]# setfacl -mg:mygroup1:rx acl_test1 
[root@study ~]# getfacl acl_test1
# file: acl_test1
# owner: root
# group: root
user::rwx
user:vbird1:rx
group::r--
group:mygroup1:rx   <==这里就是新增的部分!多了这个群组的权限设定!
mask::rx
other::r--

getfacl 指令用法

getfacl:取得某个档案/目录的ACL 设定项目;

[root@study ~]# getfacl filename

列出刚刚我们设定的acl_test1的权限内容: 
[root@study ~]# getfacl acl_test1 
# file: acl_test1    <==说明档名而已!
# owner: root        <==说明此档案的拥有者,亦即ls -l看到的第三使用者栏位 
# group: root        <==此档案的所属群组,亦即ls -l看到的第四群组栏位 
user::rwx            <==使用者列表栏是空的,代表档案拥有者的权限
user:vbird1:rx      <==针对vbird1的权限设定为rx ,与拥有者并不同!
group::r--           <==针对档案群组的权限设定仅有r 
mask::rx            <==此档案预设的有效权限(mask) 
other::r--           <==其他人拥有的权限啰!

常用命令

getfacl filename
setfacl -m u:user:rwx testfile 
setfacl -R -d -m u:user:rwx testdirectory 

你可能感兴趣的:(LINUX)