ACL实现灵活的权限管理

ACL实现灵活的权限管理

除了文件的所有者,所属组和其它人,可以对更多的用户设置权限

CentOS7当中,无论是操作系统安装时还是之后手工创建的文件系统(xfsext4)均会开启ACL功能。

CentOS6及之前的版本,仅操作系统安装时创建的文件系统才会默认开启ACL,手工创建的文件系统,需要手工开启ACL功能。

mount -o acl /dev/sda7  取消的方式,重新挂载时不指定即可

tune2fs -o acl /dev/sda7 取消的方式 tune2fs -o ^acl /dev/sda7

 

ACL权限判断的顺序

先判断是否是文件的OWNER,如果是,则执行OWNER的权限后结束,如果不是OWNER,则判断是否是ACLUSER,如果是则执行USER权限后结束,如果不是ACLUSER, 则判断是否属于GROUPACL GROUP,如果是,则取最大权限。如果不属于任何GROUP,则执行OTHER

所有人->ACLuser>所有组和ACLgroup->其他人

ACL实现灵活的权限管理

将文件f1的所属人权限改为,将文件f1 ACL里的user :liubei权限设为rwx,切换到liubei用户下,此时该用户对f1文件啥都不能做,说明文件的ower权限大于ACLuser权限。

ACL实现灵活的权限管理

将文件f1 acluser:guanyu的权限设为,将acl里的group:guanyu的权限设为rw-,进入guanyu用户下,此时不能查看修改文件f1,所以acluser权限大于group权限。

ACL实现灵活的权限管理

文件f1的组权限为aclgroupguanyu的权限为rwx,切换到guanyu用户下,能查看修改执行文件

ACL实现灵活的权限管理

文件f1组权限为rwx,aclgroup:guanyu权限为rw-,切换到guanyu用户下,此时能执行文件。

所以如果不是ACLUSER, 则判断是否属于GROUPACL GROUP,如果是,则取最大权限。

 

为多用户或者组的文件和目录赋予访问权限rwx:

setfacl -m u:liubei:— f1  设置ACL USER

setfacl -m g:shuguo:rwx f1  设置ACL GROUP

setfacl -M acl.txt f1[dir1](将一个文件的ACL,导入到另一个文件中)

acl.txt 内容来自getfacl f1 > acl.txt,如下

# file: fstab

# owner: root

# group: root

user::rw-

user:zhangfei:rwx

group::r–

mask::rwx

other::r–

ACL实现灵活的权限管理

setfacl -Rm u:zhangfei:rwx acltest/   递归设置

setfacl -m mask:rwx f1 设置mask的权限

chmod g=rwx f1 一旦设置了ACL权限后,原有的文件GROUP不可再更改,使用chmod g=即修改ACL MASK(用ll命令显示的文件组权限变为mask

ACL MASK随着新的ACL设置会被重置,重置的标准是让该文件上的所有ACL及文件原GROUP上的权限都有效。

ACL实现灵活的权限管理

给文件f1的组权限设成rwx,但文件f1 ACL里组权限还是原本的rw-,而mask权限变为rwx,切换到guanyu用户下,执行文件f1,权限被拒绝。

ACL实现灵活的权限管理

原本文件f1 ACLmask权限为rwx,当把文件组权限改为时,可以发现组权限并没有发生变化,而mask权限变为,所以当文件设置了ACL权限后,原有的文件GROUP不可再更改,使用chmod g=即修改ACL MASK

ACL实现灵活的权限管理

mask权限为时,ACL中的user权限和group权限都会受到作用(除了owner,mask权限会约束到ACLusergroup权限,两者(maskACL USERmaskACL group)权限取并集。

最好最后设置mask,是为了保障每一条ACL都能够生效。

 

setfacl -x u:liubei f1  单独去除一条ACL权限

setfacl -X aclrm.txt f1[ f2 f3 *](批量删除ACL:先创建一个文件在里面写入你所要删除的ACL,格式如下图)

aclrm.txt 内容如下

u:liubei

g:shuguo

ACL实现灵活的权限管理

setfacl -b f1 去除该文件上ACL属性(文件中mask也被删掉了)。

setfacl -m d:u:guanyu:rwx dir1  设置ACL默认权限,仅影响新创建的文件及目录,不影响当前。

ACL实现灵活的权限管理

 

ACL实现灵活的权限管理

此时进入guanyu用户下,进入/app/acltest/dir1,但是不能创建文件,说明guanyu用户是以其他身份来访问dir1目录的。

ACL实现灵活的权限管理

回到root用户下,发现之后在dir1中创建的文件和目录都默认有ACL属性。

ACL实现灵活的权限管理

再切到guanyu用户下,进入dir1123目录中,发现能够创建文件了,而且文件也有默认ACL属性。说明guanyu用户此时拥有 setfacl -m d u:guanyu:rwx dir1 命令新增加acl user的权限,也说明该命令对当前目录不会生效,对子目录以下的有效。

setfacl -m u:guanyu:rwx dir1(setfacl -m d u:guanyu:rwx dir1 后面再敲setfacl -m u:guanyu:rwx dir1(两者顺序可以颠倒)就可以在当前目录也生效)

setfacl -x d:sunquan d11 删除一条默认权限

setfacl -k d1 删除全部默认权限

setfacl -b d1 删除ACL属性

 

备份和恢复ACL

getfacl -R /tmp/dir1 > acl.txt  将目录下的所有文件的ACL属性备份到文件

setfacl -R -b /tmp/dir1 清除目录下所有文件的ACL属性

setfacl -R –set-file=acl.txt /tmp/dir1   通过文件还原ACL属性的方法1

setfacl –restore acl.txt    通过文件还原ACL属性的方法2

 

 

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

(0)
fumingfuming
上一篇 2017-07-27
下一篇 2017-07-27

相关推荐

  • 马哥教育21期网络班—第12周课程+练习—-LAMP练习下

    在LAMP架构中,请分别以fpm工作为独立守护进程的方式来支持http yum groupinstall "Development Tools" "Server Platform Development"——>安装包组1、编译安装Apacheht…

    Linux干货 2016-09-26
  • centos7 yum源仓库网络共享

    一般yum源仓库需要两部分组成,一部分为rpm程序包,另一个就是repodata元数据组成。制作一个简单的网络共享yum源仓库,在制作网络共享服务器需要事先配备好你的yum源,以方便使用 1.安装网络共享yum源仓库服务 以ftp为例: (1)在centos7中是否有ftp,用rpm -q 对vsftpd程序包查看 [root@local…

    Linux干货 2017-04-23
  • NTP时间服务器

        在集群环境和需要日志同步的多服务器应用中,为了能够保证多台服务器的之间的正常协作,就必须使它们的时间保持一致,在多台服务器上手动调整时间是极其不科学的,这时就需要借助于NTP时间服务器来完成时间的同步。     一、NTP服务器的安装    …

    Linux干货 2015-06-25
  • 过滤语句和复制,权限的一些事例

    1.复制/etc/skel 目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限 ~]# cp -r /etc/skel/ /home/tuser1/ ~]# chmod go= /home/tuser1/ 2.编辑/etc/group文件,添加组hadoop ~]# echo "hadoop:…

    Linux干货 2016-10-14
  • N21 第八周 总有刁民想害朕

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。它工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性。 集线器的英文称为“Hub”。主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它…

    Linux干货 2016-09-15
  • BIND的编译安装\DNS的搭建及测试

    编译安装bind          1、下载bind: isc.org: bind-9.10 bind-9.11 bind-10          2、 #tar xvf bind-9.10.5.tar.gz       &nbs…

    2017-07-31