Linux中ACl权限- getfacl, setfacl

来源:互联网 发布:知乎成都 编辑:程序博客网 时间:2024/05/17 23:40

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: rootuser::rwxuser:vbird1:rxgroup::r--group:mygroup1:rx   <==这里就是新增的部分!多了这个群组的权限设定!mask::rxother::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 filenamesetfacl -m u:user:rwx testfile setfacl -R -d -m u:user:rwx testdirectory 
原创粉丝点击