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)
上一篇 2016-08-05 16:13
下一篇 2016-08-05 16:13

相关推荐

  • AWK

    GNU awk 全称:Aho,Weiberger,Kernighan,是三个作者的名字,所以简称为awk awk:报告生成器,主要用来格式化文本输出的,它能够实现在处理文本文件时对文档中的字段有条件的显示,而且将显示的结果用非常美观的文本形式给予输出。我们所用的awk其实就是gawk,他是一个符号链接指向gawk的。 gawk – pattern…

    Linux干货 2016-09-23
  • shell脚本编程基础

    shell脚本编程基础以及一些基本的逻辑运算知识和shell的配置用户环境。

    2017-11-26
  • Linux中的网络功能概念介绍(一)

      在操作系统中,进程之间的通信是用ipc(内存基本通信)以及内存共享shm来实现本地的通信,那么如果跨主机间通信或者说是不同之间的主机用rpc(远程过程调用)以及socket套接字,用一个主机在socket中写数据,另一个主机在socket之间读数据,以实现进程通信的最终目的。   在网络功能出现之前,基本都是用电话…

    Linux干货 2016-11-23
  • 访问控制列表ACL

     ACL是Access Control List的缩写,主要的目的是提供传统的owner、group、others的read、write、execute权限之外的具体权限设置。ACL可以针对单一用户、单一文件、单一目录来进行r、w、x的权限设置,对于需要特殊权限的使用状况非常有帮助。使用getfacl和setfacl来设置查看acl的权限。ACL权…

    Linux干货 2016-08-07
  • 第二周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。     文件管理类命令:cp、mv、rm     (1)cp:复制命令      单源复制(源文件为文本文件)    &n…

    Linux干货 2017-01-18
  • DNS服务器搭建从协议到实现详解

    一、域名和服务概述    1.FQDN:Fully Qualified Domain Name,完全限定域名,全局唯一           FQDN是指主机名加上全路径,全路径中列出了序列中所有域成员。全域名可以从逻辑上准确地表示…

    Linux干货 2016-04-30