文件的权限详解(二)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

相关推荐

  • 马哥教育网络19期+第五周练习博客

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;   grep "^[[:space:]]\+.*" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; &n…

    Linux干货 2016-06-19
  • 0805随堂练习

    文本处理练习: 1.找出本机ip地址  [root@localhost ~]# ifconfig |head -2 |tail -1 |tr -s ' ' ':' |cut -d: -f3  10.1.252.221 2.查看本机分区最大的利用率  [root@localhost ~]# …

    Linux干货 2016-08-07
  • 用户和组管理的命令

    用户管理概念: 用户类别:         管理员,普通用户,(系统用户和登录用户) 组类别:         管理组员,普通用户组         基本组和附加组         私有组,公共组 数…

    Linux干货 2016-12-21
  • linux防火墙介绍

    一、前言firewall(防火墙):工作在网络进入或者流包,进出的网络数据包进行一定的规则进行检查过滤系统。包括iptables和netfilter组件。iptables 是与 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、服务器或连接 LAN 和因特网的代理服务器, 则该系统系统中更好地控制 IP 信息包过滤和…

    2017-04-30
  • 系统管理之系统安装及自动化安装

    概述:     上篇我们讨论了下关于Linux系统的启动流程和grub相关的内容,本篇将介绍一下Linux的系统安装相关的内容,具体分为:     1、系统安装程序anaconda的介绍     2、kickstart文件的介绍 &nbsp…

    Linux干货 2016-09-16
  • TCP详解

    TCP协议详解   TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个使用TCP/IP协议的协议集合。他取代了OSI七层模型,成为事实上的应用于实际的模型。 TCP/IP协议与OSI协议的关系如下:   各层的作用如下: TCP特性: 工作在传输层面向连接协议 全双工协议 半关闭 错误检查 将数据打包成段,排序 确认机制 …

    2017-09-02