ACL权限设置
Posted ericz2j
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACL权限设置相关的知识,希望对你有一定的参考价值。
(整理自《鸟哥的Linux私房菜》基础篇)
1.什么是 ACL ?
ACL 是 Access Control List 的缩写,主要的目的是在提供传统的 owner,group,others 的
read,write,execute 权限之外的细部权限设定。ACL 可以针对单一使用者,单一文件或目录来进行 r,w,x 的权限规范,对于需要特殊权限的使用状况非常有帮助。
那 ACL 主要可以针对哪些方面来控制权限呢?他主要可以针对几个项目:
• 使用者 (user):可以针对使用者来设定权限;
• 群组 (group):针对群组为对象来设定其权限;
• 默认属性 (mask):还可以针对在该目录下在建立新文件/目录时,规范新数据的默认权限;
也就是说,如果你有一个目录,需要给一堆人使用,每个人或每个群组所需要的权限并不相同时,在过去,传统的 Linux 三种身份的三种权限是无法达到的, 因为基本上,传统的 Linux 权限只能针对一个用户、一个群组及非此群组的其他人设定权限而已,无法针对单一用户或个人来设计权限。 而 ACL 就是为了要改变这个问题。
2.查看是否支持(启动)ACL?
3.ACL 的设定: getfacl, setfacl
- · getfacl:取得某个文件/目录的 ACL 设定项目;
- · setfacl:设定某个目录/文件的 ACL 规范。
3.1 getfacl 指令用法
显示的数据前面加上 # 的,代表这个文件的默认属性,包括文件名、文件拥有者与文件所属群组。 底下出现的 user, group, mask, other 则是属于不同使用者、群组与有效权限(mask)的设定值。
3.2 针对单一使用者的设定方式『 u:账号:权限』设定
用法:
3.3 特定的单一群组的权限设定:『 g:群组名:权限 』
用法使用:
3.4 针对有效权限设定:『 m:权限 』
什么是有限权限?其实就是结果中的umask字段,他的意义是使用者或群组所设定的权限必须要存在于 mask 的权限设定范围内才会生效。
举个例子,如下所示:
下面给出一个例题,解决Linux账号管理中的最后留下的那个问题:
接下来让我们来测试一下,如果我用 root 或者是 pro1 的身份去 /srv/projecta 增加文件或目录时,该文件或目录是否能够具有 ACL的设定? 意思就是说,ACL 的权限设定是否能够被次目录所继承?先试看看:
你可以明显的发现,权限后面都没有 + ,代表这个 acl 属性并没有继承。
3.5 使用默认权限设定目录未来文件的 ACL 权限继承
『d:[u|g]:[user|group]:权限 』
通过这个『针对目录来设定的默认 ACL 权限设定值』的项目,我们可以让这些属性继承到次目录底下。
如果想要让 ACL 的属性全部消失又要如何处理?透过『 setfacl -b 文件名 』即可。
以上是关于ACL权限设置的主要内容,如果未能解决你的问题,请参考以下文章