访问控制列表ACL

 ACL是Access Control List的缩写,主要的目的是提供传统的owner、group、others的read、write、execute权限之外的具体权限设置。ACL可以针对单一用户、单一文件、单一目录来进行r、w、x的权限设置,对于需要特殊权限的使用状况非常有帮助。使用getfacl和setfacl来设置查看acl的权限。ACL权限给了x,文件也不会继承x权限。ACL上的mask只是一种限制权限的机制影响除所有者和other的之外的人和组的最大权限。mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限(Effective Permission),用户或组的设置必须存在于mask权限设定范围内才会生效。它也不会给文件x权限。

 

setfacl 设置acl属性

语法

setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file …

常用选项

-m  #设置后续的acl参数给文件使用,不可与-x合用
-M  #用文件或标准输入来读取acl的规则
-x  #删除后续的acl参数,不可与-m合用
-X  #用文件或标准输入来读取acl的规则
-b  #删除所有的acl设置参数
-k  #删除默认的acl参数
-R  #递归设置acl

例如

[root@localhost testdir]# ls #列出文件
sun
[root@localhost testdir]# cat sun  #查看文件,其他只有r权限
sssaaaaaaaaaaaaaa
[root@localhost testdir]# setfacl -m u:tom:rw sun #设置acl权限
[root@localhost testdir]# getfacl sun #查看acl权限
# file: sun #文件名  "#"表示默认代表默认属性
# owner: root #属主
# group: root#属组
user::rw- #文件所有者的权限
user:tom:rw- #自己设置的用户权限
group::r--#用户组的默认权限
mask::rw- #文件默认权限 
other::r-- #其他人拥有的权限
[root@localhost testdir]# ll 
total 4
-rw-rw-r--+ 1 root root 42 Aug  6 18:39 sun #设置acl后面会有个"+"号
[root@localhost testdir]# su tom #切换其他用户
[tom@localhost testdir]$ echo "newfile i am very tired" >>sun #写入数据。(按理不用改有次权限) 
[tom@localhost testdir]$ cat sun #由于设置了acl,所有有了rw权限。
sssaaaaaaaaaaaaaa
newfile i am very tired

mask就是一个界限,只能在它指定的范围内的权限才可以。

[root@localhost testdir]# setfacl -m mask:r sun #设置mask默认为r
[root@localhost testdir]# getfacl sun #查看acl表
# file: sun
# owner: root
# group: root
user::rw-
user:tom:rw-#effective:r-- #有效值
group::r--
mask::r--
other::r--
[root@localhost testdir]# getfacl -R file > acl.txt #备份访问控制列表到acl.txt文件中
[root@localhost testdir]# ll 
total 12
-rw-r--r--  1 root root 115 Aug  6 19:03 acl.txt
-rw-rw-r--+ 1 root root   5 Aug  6 17:55 file
-rw-r--r--  1 root root  45 Aug  6 17:44 file1
[root@localhost testdir]# cat acl.txt  #备份的acl条目
# file: file
# owner: root
# group: root
user::rw-
group::r--
group:Cloud:rwx#effective:rw-
mask::rw-
other::r--

[root@localhost testdir]# setfacl -b file #清空acl
[root@localhost testdir]# ll
total 12
-rw-r--r-- 1 root root 115 Aug  6 19:03 acl.txt
-rw-r--r-- 1 root root   5 Aug  6 17:55 file
-rw-r--r-- 1 root root  45 Aug  6 17:44 file1
[root@localhost testdir]# setfacl -R --set-file=acl.txt file #恢复acl
[root@localhost testdir]# ll
total 12
-rw-r--r--  1 root root 115 Aug  6 19:03 acl.txt
-rw-rw-r--+ 1 root root   5 Aug  6 17:55 file
-rw-r--r--  1 root root  45 Aug  6

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

(0)
ladsdmladsdm
上一篇 2016-08-07
下一篇 2016-08-07

相关推荐

  • Linux 的shell脚本编程

    shell脚本编程 程序:指令+数据 程序编辑风格:             过程式:以指令为中心,数据服务于指令             对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 计算机:运行二进制指…

    Linux干货 2016-08-15
  • vim编辑器及练习题

    命令用法: vim [OPTION]… FILE…  +#: 打开文件后,直接让光标处于第#行的行首                   &nbs…

    Linux干货 2016-08-11
  • keepalived实现lvs的高可用

    lvs可以做到内核级别的四层负载均衡,具有非常强悍的负载均衡能力。但是,当我们构建lvs的负载均衡集群的时候也会面临一些很严重的问题: lvs的单点故障:当lvs负载均衡器出现故障的时候,那么后端所有的服务器都将无法访问; lvs对后台服务器没有健康监测机制:当后台服务器宕机之后lvs还是会调度服务到后台的服务器; 所以我们就需要一款工具来解决以上问题。 k…

    2017-07-03
  • 简述计算机硬件组成,linux系统及简单命令详解

    1、计算机的硬件组成 (1)cpu(中央处理器):主要由运算器和控制器组成,它的运算器主要负责程序运算与逻辑判断,控制器则主要协调组件与各个设备之间工作。 (2)存储设备:存储设备又分为外存储设备,是用来存储数据信息的设备,它包括,硬盘,u盘,光盘,软盘。而其中内存(ram)和主板上的rom是属于内存储设备,内存是只读存储器,它用来暂时记录数据信息供给cpu…

    2017-07-09
  • 文本处理工具

    首先介绍一下wc 这个工具,一看到这个词,我不禁捧腹大笑,这不是我们经常要去的地方吗?其实我们都错了,厕所的正确翻译为toilet,为什么叫wc 呢?这中间还有个故事,在这里就大概说一下吧。 很早以前,厕所Toilet里都有水箱watercloset, 人们一提到water closet就想到了toilet,因此watercloset就成了toil…

    2017-07-29
  • cp和ln命令简述

    cp和软ln命令简述 cp          备注: 1.       该命令可以自动判断你所复制的是文件还是目录 2.       当源是一个文件,目标(目的…

    2017-08-19