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
上一篇: DPDK ACL链表