欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux中ACl权限- getfacl, setfacl

程序员文章站 2024-02-28 17:32:22
...

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

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

setfacl 指令用法

[[email protected] ~]# 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 ACL