热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux笔记分享九:ACL权限

一、ACL权限简介和开启Linux下用户对文件的操作权限有r-读,w-写,x-可执行三种,而对linux下的文件而言,用户身份分为:所有者,所属组,其它人;且文件的所有者,所属组都






一、ACL权限简介和开启

Linux下用户对文件的操作权限有r-读w-写x-可执行三种,而对linux下的文件而言,用户身份分为:所有者,所属组,其它人; 且文件的所有者,所属组都只能是一个,所以在对文件分配用户的使用权限时,只能对这三种身份进行分配rwx权限,Linux 主要作为服务器系统使用,用户众多;所以在实际使用场景中,这三种身份并不能很好地实现资源权限分配问题,所以就有了ACL权限

ACL权限就是为了解决linux下三种身份不能满足资源权限分配需求的问题的


file


1、查看分区ACL权限是否支持


ACL权限是作用于分区的一种权限


例如:

dumpe2fs -h /dev/sda5

-h: 仅显示超级块中信息,而不显示磁盘块组的详细信息


返回:

... ...
Default mount options: user_xattr acl
... ...

如果看到上面这一行含有acl,证明分区支持ACL权限



  • 如果不支持ACL权限


临时开启根分区ACL权限支持


mount -o remount,acl /

永久开启根分区ACL权限支持


vim /etc/fstab

修改成:

... ...
UUID=xxxxx-xxxx-xxxx / ext4 defaults,acl 1 1
... ...

加入,acl


重新挂载:

mount -o remount /

其实defaults默认带有ACL权限,加入ACL是明确指定开启ACL权限



二、ACL权限查看与设定

1、getfacl


查看ACL权限


getfacl 文件名

2、sefacl


设定ACL权限


setfacl 选项 文件名

  • 选项


-m: 设定ACL权限

-x: 删除指定的ACL权限

-b: 删除所有的ACL权限

-d: 设定默认ACL权限

-k: 删除默认ACL权限

-R: 递归设定ACL权限


例如:

setfacl -m u:lw:rx /home/av

-m选项后面跟用户或组标识符(u|g):用户或组:执行的权限



  • 注意


当文件或目录加入acl权限后,ll查看命令会看到标示ACL的点变成加



三、最大有效权限和删除ACL权限

1、最大有效权限


当一个目录或文件加入ACL权限后,用getfacl看到多出一个mask权限,这个就是最大有效权限

即,mask是用来指定最大有效权限的。如果我给用户赋予了ACL权限,是需要和mask的权限"逻辑与"才能得到用户的真正权限



  • 逻辑与

















ABand
rrr
r--
-r-
---

2、修改最大有效权限

setfacl -m m:rx 文件名

设定指定文件的mask权限为r-x。使用m:权限格式



  • 注意


这个马赛克权限一般不用,除非ACL非常多时



3、删除ACL权限

setfacl -x u:lw 文件或目录

4、删除所有ACL权限

setfacl -b 文件或目录
四、ACL默认权限与递归权限

1、递归ACL权限


递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限


setfacl -m u:用户名:权限 -R 目录文件

例如:

setfacl -m u:lw:rx -R /home/av/

  • 权限溢出


目录赋予执行权限时,递归到文件也会获得执行权限,这样就造成了权限溢出,没有办法解决

因此,ACL权限尽量少用,能用普通权限解决的就用普通权限解决



  • 目录和文件马赛克权限


目录的是rwx

文件的是r-x



  • 注意


递归权限仅能赋予目录,不能赋予文件



2、默认ACL权限


默认ACL权限的作用是如果给父目录设定了默认ACL权限,那么父目录中所有==新建==的子文件都会继承父目录的默认ACL权限


setfacl -m d:u:用户名:权限 目录文件

例如:

setfacl -m d:u:lw:rw /home/av/


推荐阅读
author-avatar
安安1
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有