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

相关推荐

  • 如何用SHELL写好网络爬虫

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1550976        上周,老大压下来任务,让写一个网络爬虫,负责爬某一个行业网站的数据信息。由于本人只会 sh…

    Linux干货 2016-08-15
  • 记马哥教育第30期Linux云计算面授班开班典礼

    记马哥教育第30期Linux云计算面授班开班典礼

    2018-03-26
  • date(时间),timedatectl(时区),cal(日历)的用法

    date+%F 显示日期,   显示格式如 2017-07-15+%T 显示时间    显示格式如 15:00:15+%Y 显示年      显示格式如 2017+%m 月 +%d 日+%H 时+%M 分+%S 秒+%s 从linux初始到现在经历了多少秒+%w 显示数字形式的星期+%a …

    Linux干货 2017-07-14
  • PHP字符串的编码问题

        大家都知道,不同字符编码,其在内存占用的字节数不一样。如ASCII编码字符占用1个字节,UTF-8编码的中文字符是3字节,GBK为2个字节。     PHP 也自带几种字符串截取函数,其中常用到的就是 substr 和 mb_substr。     使用substr截取中…

    Linux干货 2015-10-22
  • 关于tar命令的一些方法

    tar 解压缩文件时只有当文件格式中有tar才能使用,否则使用其他单独的特定解压缩工具,例如uncompress,gzip ,bzip2.xz等等 tar压缩解压缩命令详解 tar命令详解 -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命…

    Linux干货 2016-08-29
  • 倒排索引-搜索引擎的基石

    1.概述       在关系数据库系统里,索引是检索数据最有效率的方式,。但对于搜索引起,他它并不能满足其特殊要求:       1)海量数据:搜索引擎面对的是海量数据,像Google,百度这样大型的商业搜索引擎索引都是亿级甚至几千的网页数量 ,面对…

    Linux干货 2015-12-10