注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天朝布衣田中码农参上

苦逼码农的点点滴滴,请多多指教!

 
 
 

日志

 
 
 
 

Linux利用facl访问控制列表精细化文件权限  

2017-09-27 07:00:35|  分类: 服务器 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Linux(和其他Unix等POSIX兼容的操作系统)有一种被称为访问控制列表(ACL)的权限控制方法,它是一种权限分配之外的普遍范式。例如,默认情况下只有3个权限组:owner、group和other。而使用ACL,利用文件扩展属性保存额外的访问控制权限,就可以增加权限给其他用户或组别,而不单只是简单用"other"来统一处理其它情况。这样就可以指定允许的用户拥有权限而不再是让他们整个组都拥有权限[权限可以控制得更严格]。
ACL支持多种Linux文件系统,包括ext2, ext3, ext4, XFS, Btfrs等。
要想知道文件系统是否开启acl权限控制请使用如下命令:

$ tune2fs -l /dev/sda1 | grep option

得到了回应中形如下则表示已经开启。

Default mount options: acl

开启acl支持可以使用如下命令:

#方法一:修改/etc/fstab中mount选项

$ mount -o remount,acl /dev/sda3 /mnt/acldev
$ vim /etc/fstab
/dev/sda3 /mnt/acldev ext4 defaults,acl 0 0

#方法二:使用tune2fs修改文件系统信息
$ tune2fs -o acl /dev/sda3 开启文件系统的acl选项
$ tune2fs -o ^acl /dev/sda3 取消文件系统的acl选项

基础ACL通过两条命令管理:setfacl用于增加或者修改ACL,getfacl用于显示分配完的ACL。其中getfacl没有什么好说的,setfacl参数说明如下:
-m: 设定
 u:UID:perm 
 g:GID:perm
 d:u:UID:perm  
 d:g:GID:perm
-x:取消
 u:UID
 g:GID
-b:删除所有扩展的acl规则
-R:递归执行
-h:察看帮助,如果需要了解更多的命令行参数的话
针对某个用户设置权限请使用[用户名:manager]:

$ setfacl -m u:manager:rx /home/593668.com

或者给某个组设置权限[组名:manager]:

$ setfacl -m g:manager:rx /home/593668.com

取消某项权限[组名:manager,用户名:manager]:

# setfacl -x g:manager /home/593668.com

# setfacl -x u:manager /home/593668.com

注意事项
1)对于组权限,setfacl设置的权限只对主组(即useradd -g或usermod -g的组)有效,对附加组(即useradd -G或usermod -aG的组)无效,即使文件的所有组已改为附加组。
2)setfacl和chmod设置的权限可以相互覆盖,当二者设置的权限不一致时,以使用getfacl看到的“#effective:”后的权限为准。对一个目录设置了setfacl后,不要再对其chmod,否则chmod的权限将覆盖先前setfacl的权限。
3)用户访问文件权限应用次序如下:
owner --> group--> other
owner --> facl,user --> group --> facl,group --> other
  评论这张
 
阅读(1)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018