文件的权限详解(二)ACL篇

文件的权限详解(二)ACL篇

ACL访问控制列表作用

1、 ACL:Access Control List,实现灵活的权限管理
2、 除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
3、 CentOS7.0默认创建的xfs和ext4文件系统有ACL功能。
4、 CentOS7.X之前版本,默认手工创建的ext4文件系统无ACL功能。需手动增加:

tune2fs –o acl /dev/sdb1
mount –o acl /dev/sdb1  /mnt

5、 ACL生效顺序:所有者,自定义用户,自定义组,其他人

 ACL使用两个命令来对其进行控制

 getfacl:取得某个文件/目录的ACL设置项目
 setfacl:设置某个文件/目录的ACL设置项目

setfacl命令

作用:设置文件访问控制列表的命令
语 法:
格 式1:setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file…
格 式2:setfacl  –restore=file

参 数:

  • -m设置后续acl参数

    setfacl  -m u:wang:rwx file|directory  设置wang用户对文件或目录具有读写执行权限
    setfacl  -m g:salesgroup:rw file| directory  设置组用户对文件或目录的读写执行权限
  • -x删除后续acl参数

         setfacl  -x u:wang file |directory  删除wang用户对文件的访问限制
  • b,–remove-all:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留。

                setfacl -b file1清除所有ACL权限
  • k,–remove-default:删除缺省的acl规则。如果没有缺省规则,将不提示。

     setfacl -k dir 删除默认ACL权限
  • m重新计算有效权限,即使ACL mask被明确指定。

  • d,--default:设定默认的acl规则;以后这个目录下创建的文件都将具有此权限

        setfacl  -m d:u:wang:rx directory
  • -R,–recursive:递归的对目前该目录下所有文件及目录进行操作

        setfacl  -Rm g:sales:rwX directory
  • –  getfacl file1 | setfacl –set-file=- file2  复制file1的acl权限给file2

  • –restore=file:从文件恢复备份的acl规则(这些文件可由getfacl -R产生)。通过这种机制可以恢复整个目录树的acl规则。此参数不能和除–test以外的任何参数一同执行

-n      ,–no-mask:不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定。
-L      ,–logical:跟踪符号链接,默认情况下只跟踪符号链接文件,跳过符号链接目录。
-P      ,–physical:跳过所有符号链接,包括符号链接文件。
–test    :测试模式,不会改变任何文件的acl规则,操作后的acl规格将被列出。


    标识命令行参数结束,其后的所有参数都将被认为是文件名。

    如果文件名是-,则setfacl将从标准输入读取文件名。

其他:

以文本文件方式批量设置acl权限 -M

[root@localhost qiuzhaoxian]# cat acl.test 
u:qzx:---
u:user1:rwx
u:user2:r
u:user3:7
g:gentoo:0
g:user4:rx
[root@localhost qiuzhaoxian]# setfacl -M acl.test 123
[root@localhost qiuzhaoxian]# getfacl 123
# file: 123
# owner: xiaoming
# group: xiaoming
user::rwx
user:qzx:---
user:user1:rwx
user:user2:r--
user:user3:rwx
group::rwx
group:user4:r-x
group:gentoo:---
mask::rwx
other::---

– X 以文本方式批量删除文件acl(本来有删除对应的acl权限)acl权限

[root@localhost qiuzhaoxian]# cat bbb.test 
u:user1
u:user2
u:user3
[root@localhost qiuzhaoxian]# setfacl -X bbb.test 123
[root@localhost qiuzhaoxian]# getfacl 123
# file: 123
# owner: xiaoming
# group: xiaoming
user::rwx
user:qzx:---
group::rwx
group:user4:r-x
group:gentoo:---
mask::rwx
other::---

以参考文件的acl权限设置目标文件

[root@localhost qiuzhaoxian]# mkdir 456
[root@localhost qiuzhaoxian]# getfacl 123 | setfacl --set-file=- 456
[root@localhost qiuzhaoxian]# getfacl 456
# file: 456
# owner: root
# group: root
user::rwx
user:qzx:---
group::rwx
group:user4:r-x
group:gentoo:---
mask::rwx
other::---

注:setfacl –set-file= 这里的=后边的-表示从标准输入读取文件
这里的- 可以换成文件(当备份恢复时用)

–set选项会把原有的ACL项都删除,用新的替代,需要注意的
是一定要包含UGO的设置,不能象-m一样只是添加ACL就可以.
如:
 setfacl –set u : : rw , u : qzx: rw , g : : r , o::- file1

备份和恢复ACL

#getfacl -R /tmp/dir1 > acl.txt#setfacl -R -b /tmp/dir1
#setfacl -R  --set-file=acl.txt /tmp/dir1#getfacl -R /tmp/dir1

关于mask

mask只影响除所有者和other的之外的人和组的最大权限
Mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限

一旦设置acl mask后 所属组权限就变成mask权限
也就是说用chmod g=wx  文件  那么mask也将编程wx

用户或组的设置必须存在于mask权限设定范围内才会生效。
设置方式

setfacl -m mask::rx file

原创文章,作者:qzx,如若转载,请注明出处:http://www.178linux.com/28909

(0)
qzxqzx
上一篇 2016-08-05
下一篇 2016-08-05

相关推荐

  • python装饰器详解

    python之装饰器详解 一、装饰器定义 定义一个函数,可以接受一个函数作为参数,对该函数进行一些包装,不改变函数的本身。 二、装饰器四部曲(分解) 1、函数可赋值给变量。若赋值给变量的是调用后的函数,变量的值就是return的返回值。 切记:函数赋值给变量,只看return的值。分清楚函数是处于调用状态还是未被调用状态。若函数没有写return,默认ret…

    2017-02-08
  • Linux发展史

    简 述 Linux是一套自由加开放源代码的类Unix操作系统,诞生于1991年10月5日(第一次正式向外公布),由芬兰学生Linus Torvalds和后来陆续加入的众多爱好者共同开发完成。 Linux是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议,可支持32位和64位硬件。…

    2016-10-14
  • 磁盘管理

    linux的哲学思想:一切皆文件; 设备类型: 块(block):随机访问,交换数据单位是“块”; 字符(character):线性访问,数据交换单位是“字符”; 设备文件:FHS /dev     设备文件:关联至设备驱动程序;设备的访问入口;       &nbsp…

    Linux干货 2016-08-30
  • Linux基础

    Linux入门以及文件重定向、用户管理、软件管理等

    Linux干货 2018-03-17
  • LVS工作原理浅析

    一、什么是LVS         LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。         LVS集群采用IP负载均衡技术和基于内容…

    Linux干货 2016-11-29
  • 第一周作业:计算机的组成及其功能

    第一周作业 主要是对应了马哥视频前两天共八节课的内容,作业一共有六道题 01.描述计算机的组成及其功能 02.按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别 03.描述Linux的哲学思想,并按照自己的理解对其进行解释性描述 04.说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pw…

    2017-09-12