系统管理:文件访问权限之ACL

ACL(acess control list)
传统UNIX文件系统:文件访问权限包含三个部分,user / group / others,这类文件系统简洁而功能相对完善,在很长时间内被证实可以被应用于大多数场合,其典型表示如图
在这里插入图片描述但是某些特殊场合,仅仅拥有三种权限判定类别是不够的。因此出现了ACL这样新型的文件系统设计,从而指定更多具体的用户其访问权限

ACL标准

标准名称备注
POSIX ACL最初制定的ACL草案,但是由于资金问题并没有成为正式的标准。但是在UNIX阵营被广泛的实现
Windows ACL微软公司制定了自己的Windows ACL,该方案相比POSIX差异很大并且更加复杂
NFSv4 ACL鉴于没有一个权威的ACL标准,在制定此标准的时候:基于POSIX ACL,兼容Windows ACL

ACL 实现

文件系统操作系统支持ACL
ReiserFSLinuxPOSIX ACL
XFSLinuxPOSIX ACL
JFSLinuxPOSIX ACL
BtrFSLinuxPOSIX ACL
ext*LinuxPOSIX ACL
UFSSolarisPOSIX ACL
VxFSHP-UXPOSIX ACL
ZFSSolarisNFSv4 ACL
JFS2AIXNFSv4 ACL
  • POSIX ACL

ACL访问表语法格式

语法语义
user::rw-属主权限,可读可写
user:wein:r–特定用户wein,只读
group::r–文件属组,只读
group:ruby:r-x特定用户组ruby,可执行
other::rwx其它用户,读写,可执行
mask::perms影响除属主和其它之外的所有成员

ACL权限判定

  • 判断进程有效用户ID是否和属主相同,如果相同,最终访问权限为user::这一项决定(与mask无关)

  • 继续判断有效用户ID是否和其它特定用户相同,如果相同,最终访问权限为user:name:一项与mask决定

  • 继续判断有效用户ID所属诸多组别是否和ACL中有匹配项,如果匹配,最终访问权限为group:*:与mask决定

  • 以上都不成立,权限取决于other::项(于mask无关)

  • ACL继承

POSIX ACL实验
01 最小ACL(实际ACL并没有存储,只是把9bits翻译成为ACL输出),通过ls -l 输出最后没有提示"+“符号判断是否存储ACL
在这里插入图片描述
手动编辑最小ACL,事实上仍然只是修改9bit权限位
在这里插入图片描述
02真实ACL
setfacl 把写权限提供给用户wein(wein不在jianleya这个组当中),实验发现wein确实可以写入文件。此时文件已经真实需要一个ACL存储,从文件末尾的”+“符号可以看出这一点
在这里插入图片描述03 当文件末尾有一个”+"符号,意味着文件需要单独存储ACL:
这个时候使用chmod 命令改变组权限将会产生一个问题,chmod g+w 或者g-w修改的是mask这个字段,并不会影响group::
在这里插入图片描述
example文件开始组权限只读,使用chmod g+w发现ls命令显示组已经有了写权限,但是ACL中mask增加了w掩码字,group::仍然是只读(这个时候属于jianleya这个组的成员对该文件是没有写权限的)。显然ls -l 的输出有些问题,为了真正赋予组写权限需要编辑ACL group::

  • NFSv4 ACL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值