linux中用ACL实现灵活的权限管理

ACL是什么??

ACL英文原意是Access Control List(访问控制列表).它能够实现灵活的权限管理,除了文件的所有者,所属组和其他人,设置相应的权限外,ACL允许你给任何用户或是用户组设置任何文件/目录的访问权限(注意的是有些不支持数字模式的权限给定)

ACL有什么用??

作为UGO权限管理的补充,aclGUO办不到或者是难以办到的功能

        1.可以针对用户来设置权限

        2.可以针对用户组来设置权限

        3.子文件/子目录继承父目录的权限

检查linux是否支持ACL??

acl需要linux内核和文件系统的配合才能工作,目前我们能见到的大多数linux发行版默认是支持的,但最好还是先检查一下

 图片1.png

注意:在linuxVfat 文件系统不支持acl

      centos7.0默认创建的xfsext4文件系统上有acl

      centos7.x之前版本,手工创建的ext4文件系统也不支持acl

      功能。需手动增加:

               tune2fs -o acl /dev/sdb1

               mount -o acl /dec/sdb1 /mnt

设置/dev/sda1挂载选项,用Posix Access Control Lists和用户指定的扩展属性

 那如何设置acl呢??

  1.   setfacl  -m  u:用户名:所给权限:文件

 图片2.png   

   2.  setfacl  -m  u:用户名:所给的权限:目录

如果后面是目录,则只有所给的这个目录有这个权限,其子目录里面没有。

    3.    setfacl  -Rm  g:组名:所给权限X:目录

R 就会递归到子目录里和文件,用X只给目录执行权限给文件件怎会没有

   4.    setfacl  -M file.acl 文件或是目录

比如,编辑一个acl文件。以后用到这个权限时直接调用就行了 uwang0   gtomrw

大量文件对要求有相同的acl,可写在文件里这样统一管理比较方便

   5.    setfacl  -m  du:用户名:权限 目录

表示在这个目录下新建的文件、目录默认都会有这个acl

   6.    setfacl  -x  u:用户名:文件|目录

删除所创建的acl

   7.    setfacl  -X  file.acl 目录

默认acl权限给了x,文件也不会继承x权限

base acl不能删除

   8.    setfacl  -k  dir 删除默认acl权限

   9.    setfacl  -b  file清除所有自己设置的acl权限

 图片3.png

如何限制特殊用户的最高权限呢??

acl文件上的group权限是mask值(自定义用户,自定义组,拥有组的最大权限)而非传统的组权限

mask 只影响除所用者和other的之外的人和组的最大权限

mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限

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

  10.  Setfacl -m mask ::rw 文件名(中间两个冒号之间没有空格)

图片4.png 

  –set选项会把原有的acl项都删除,用新的替代,需要注意的是一定要包含UGO的设置,不能像-m一样只是添加acl就可以如

  11.  setfacl –set u::rwuwangrwg::ro::–  文件

  12 .  acl 的备份 getfacl -R /tmp/dir >acl.txt

  13.  getfacl 可看到特殊权限

 

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

(0)
yywan1314yywan1314
上一篇 2016-08-05 16:13
下一篇 2016-08-05 16:13

相关推荐

  • Lvm的创建

    一、LVM相关基础:     PE:类似与磁盘的block,这个的大小也会影响VG的大小     PV:是磁盘分区或逻辑上与磁盘分区具有相同功能的设备(RAID),是LVM的基本存储模块,但与基本的物理存储模块相比,却包含有lvm相关的参数     VG:类似于非lvm系统中的物理磁盘,包含多个pv     LV:类似于非lvm系统中的磁盘分区   PV相关…

    2016-04-10
  • Linux学习总结&day07-正则表达式&文本处理工具

    第一部分、正则表达式     1、什么是正则表达式     正则表达式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易的达到查找、删除、替换某特定字符串的处理程序。     正则表…

    Linux干货 2016-08-08
  • 常见文件管理命令及bash特性

    cat:查看文件文本内容  -n:显示行号  [root@study ~]# cat -n /etc/passwd  1  root:x:0:0:root:/root:/bin/bash  2  bin:x:1:1:bin:/bin:/sb…

    系统运维 2016-11-06
  • Python内置数据结构

    Python内置数据结构 数值型 Int,float,complex,bool 序列对象 字符串:str  列表:list   数组:tuple 键值对 集合:set    字典:dict 数值型 Int,float,complex,bool都是class,1,5.0,2+3j都是对象即示例 Int:python3的int就是长整形,且没有大小限制,受限于内…

    Linux干货 2018-03-26
  • 任务计划使用方法

    概述     任务计划其实就是针对未来的某一刻或者是某一周期内设置要执行的工作;     任务计划分为两种:         1、一次性任务:在指定的未来的某个时间点仅执行一次任务;  &n…

    Linux干货 2015-03-26
  • 马哥教育网络班22期+第5周课程练习

    1、显示当前系统上root、fedora或user1用户的默认shell;cat /etc/passwd | grep "^\<root\>"cat /etc/passwd | grep "^\<fedora\>"cat /etc/passwd | grep "^\<user1\…

    Linux干货 2016-09-19