博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux系统setacl、getacl命令使用方法,以及mask权限作用。
阅读量:4416 次
发布时间:2019-06-07

本文共 2999 字,大约阅读时间需要 9 分钟。

setfacl 命令设置ACL权限。getfacl 命令用于显示文件上设置的 ACL 信息。

ACL( Access Control List (访问控制列表))提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限控制。通俗来讲,基于普通文件或目录设置 ACL 其实就是针对指定的用户或用户组设置文件或目录的操作权限。


getfacl命令格式

getfacl [参数] [目标文件名]

一般用到的参数有以下几种

参数 作用
a 仅显示文件acl
d 仅显示默认的acl
R 递归显示子目录acl

setfacl命令格式

setfacl [参数] [ugm]:[用户名]:[rwx] [目标文件名]

第二栏参数,u代表用户,g代表群组,而使用m参数可修改最大有效访问权限


setfacl参数

参数 作用
m 设置acl参数,不可与-x合用
x 删除acl参数
b 删除全部的acl参数
R 针对目录设置acl权限,其子目录会继承其权限,需要与m、x等结合使用
d 为目录添加默认acl,需要与m结合使用
k 删除默认的acl参数

下面对一些常用命令进行展示

用于测试的用户:root、wang

用于测试的样例文件关系

  • ~
    • testsetfacl
      • test
      • testfacl.txt

获取testsetfacl的acl权限

[root@master ~]# getfacl testsetfacl# file: testsetfacl        文件名# owner: root              文件所有者,ls -l 第三列信息# group: root              文件所属群组, ls -l 第四列信息user::rwx                  所有者权限group::r-x                 所属群组权限other::r-x	               其他用户权限

查看用户wang的权限

[root@master ~]# su wang[wang@master root]$ cd testsetfacl  可以进入testsetfacl文件[wang@master testsetfacl]$ exit

修改wang用户的权限为0

[root@master ~]# setfacl -Rm u:wang:--- testsetfacl[root@master ~]# getfacl -R testsetfacl# file: testsetfacl# owner: root# group: rootuser::rwxuser:wang:---                       #增加了此行,权限为0group::r-xmask::r-xother::r-x# file: testsetfacl/test# owner: root# group: rootuser::rwxuser:wang:---group::r-xmask::r-xother::r-x# file: testsetfacl/testsetfacl.txt# owner: root# group: rootuser::rw-user:wang:---group::r--mask::r--other::r--

切换到wang用户,执行cd命令,wang用户已经不能进入testsetfacl目录

在这里插入图片描述


尝试修改预设acl

[root@master ~]# setfacl -dm u:wang:rwx testsetfacl[root@master ~]# getfacl -R testsetfacl# file: testsetfacl# owner: root# group: rootuser::rwxuser:wang:---group::r-xmask::r-xother::r-xdefault:user::rwx             #testsetfacl增加了五行defaultdefault:user:wang:rwx         #即预设acl,在其下创建子目录default:group::r-x            #会继承预设acl,default:mask::rwxdefault:other::r-x# file: testsetfacl/test# owner: root# group: rootuser::rwxuser:wang:---group::r-xmask::r-xother::r-x# file: testsetfacl/testsetfacl.txt# owner: root# group: rootuser::rw-user:wang:---group::r--mask::r--other::r--

测试目录文件继承效果

[root@master ~]# cd testsetfacl[root@master testsetfacl]# mkdir testd[root@master testsetfacl]# getfacl testd# file: testd# owner: root# group: rootuser::rwxuser:wang:rwxgroup::r-xmask::rwxother::r-xdefault:user::rwxdefault:user:wang:rwxdefault:group::r-xdefault:mask::rwxdefault:other::r-x#创建的目录完全继承了testsetfacl的预设acl#注意,若文件夹或文件在增加预设acl前就已经创建,则其不会继承#预设acl,其子文件及目录也不会继承。

测试一般文件继承效果

[root@master testsetfacl]# touch test.txt[root@master testsetfacl]# getfacl test.txt# file: test.txt# owner: root# group: rootuser::rw-user:wang:rwx                   #effective:r--group::r-x                      #effective:r--mask::r--other::r--#一般文件则只继承群组和特定用户acl,其他权限则和#没有acl的情况下创建文件的权限一样

从以上命令结果可以看到增加了effective一栏信息,实际上是与mask一行权限有关。mask一行即为最大有效访问权限,作用是控制文件的访问权限,其他用户或组设定ACL实际权限都是与mask最大有效权限相与的结果。test.txt 文件的mask权限为 :r-- 。group和指定用户wang 的权限虽为 r-x、rwx,但与 r-- 相与运算后 ,均为 r–。只能读取test.txt。

修改默认mask权限可通过以下命令。

setfacl -Rm m:---  testsetfacl

转载于:https://www.cnblogs.com/whason/p/10778085.html

你可能感兴趣的文章
这些Java面试题必须会-----鲁迅
查看>>
CSS盒模型
查看>>
ng2路由延时加载模块
查看>>
使用GitHub的十个最佳实践
查看>>
脱离“体验”和“安全”谈盈利的游戏运营 都是耍流氓
查看>>
慎用!BLEU评价NLP文本输出质量存在严重问题
查看>>
JAVA的优势就是劣势啊!
查看>>
ELK实战之logstash部署及基本语法
查看>>
帧中继环境下ospf的使用(点到点模式)
查看>>
BeanShell变量和方法的作用域
查看>>
LINUX下防恶意扫描软件PortSentry
查看>>
由数据库对sql的执行说JDBC的Statement和PreparedStatement
查看>>
springmvc+swagger2
查看>>
我的友情链接
查看>>
Java Web Application 自架构 一 注解化配置
查看>>
如何 debug Proxy.pac文件
查看>>
Python 学习笔记 - 面向对象(特殊成员)
查看>>
Puppet 配置管理工具安装
查看>>
Bug多,也别乱来,别被Bug主导了开发
查看>>
sed 替换基础使用
查看>>