zoukankan      html  css  js  c++  java
  • Linux学习之ACL权限详解(十)

    Linux系统ACL权限详解

    目录

    ACL权限简介与开启
    查看与设定ACL权限
    最大有效权限与删除ACL权限
    默认ACL权限和递归ACL权限
    

      

     

    ACL权限简介与开启权限

    ACL权限简介

    用户权限管理始终是Linux系统管理中最重要的环节。大家对Linux/Unix的UGO权限管理方式一定不陌生,还有最常用的chmod命令。

    为了实现一些比较复杂的权限管理,往往不得不创建很多的组,并加以详细的记录和区分。

    有一种方法可以实现灵活的权限管理(文件的额外赋权机制)除了文件的所有者,所属组和其他人,可以对更多的用户设置权限,这就是访问控制列表(Access Control List)。

      

    开启权限

    ACL权限是需要分区支持的,默认情况下分区是支持的,如果不支持就需要开启ACL权限。
    这里只做介绍,可以跳过,因为现在linux系统分区默认支持ACL。

      

    两种方法:
    临时开启ACL权限:
    mount -o remount,acl /
    
    
    永久开启分区ACL权限
    1.vi /etc/fstab
    
    2.mount -o remount /
    

      

     第一种方法很简单,下面只介绍第二种方法

    打开文件

     在第一行有效行的defaults后面加上acl

    然后重新挂载一次根分区

    mount -o remount /

    查看与设定ACL权限

    设定ACL权限

    setfacl [选项] 文件名
    

      

     

     查看ACL权限

    getfacle 文件名
    

      

    实际演示

    比如有如下场景:

      某大牛在QQ群内直播讲解Linux系统的权限管理,讲解完之后,他在一个公有的Linux系统中创建了一个 /project 目录,里面存放的是课后参考资料。那么 /project 目录对于大牛而言是所有者,拥有读写可执行(rwx)权限,对于QQ群内的所有用户他们都分配的一个所属组里面,也都拥有读写可执行(rwx)权限,而对于 QQ 群外的其他人,那么我们不给他访问/project 目录的任何权限,那么 /project 目录的所有者和所属组权限都是(rwx),其他人权限无。

      问题来了,这时候直播有旁听的人参与(不属于QQ群内),听完之后,我们允许他访问/project目录查看参考资料,但是不能进行修改,也就是拥有(r-x)的权限,这时候我们该怎么办呢?我们知道一个文件只能有一个所属组,我们将他分配到QQ群所在的所属组内,那么他拥有了写的权限,这是不被允许的;如果将这个旁听的人视为目录/project 的其他人,并且将/project目录的其他人权限改为(r-x),那么不是旁听的人也能访问我们/project目录了,这显然也是不被允许的。怎么解决呢?

     

    下面 我们 来完成这整个过程 

    第一步:创建一个/project目录

    第二步:新建两个用户(在这个场景里属于群内学员)

    第三步:新建一个组

    第四步:将两个用户添加到组里面

     

    第五步:更改目录的所有者和所属组 

    第六步:赋予权限770

    第七步:查看权限

     

     第八步:新建一个用户 (别的群的学员)

    第九步:给这个用户设置ACL权限,权限为r-w

     

     第十步:查看/project的ACL

     

    最大有效权限与删除ACL权限

    最大有效权限

    可能会有点不好理解,什么意思呢?

    如果A为mask权限 ,B为ACL权限,and为用户的有效权限

    其实到这里,大家就会明白,mask权限是用来约束用户权限的,如果我们给用户给的ACL权限过大就不好了,所以我们事先把mask权限设置好,这样用户的有效权限就不会超过mask权限了。

     查看与设置mask权限

    查看mask权限
    getfacl 文件名

    设置mask权限
    setfacl -m m:权限 文件名

      

    删除ACL权限

     删除指定用户的 ACL 权限

    setfacl -x u:用户名 文件名
    

      

    删除指定用户组的 ACL 权限

    setfacl -x g:组名 文件名
    

      

    删除文件的所有 ACL 权限

    setfacl -b 文件名
    

      

     默认ACL权限和递归ACL权限

    递归 ACL 权限

    通过加上选项 -R 递归设定文件的 ACL 权限,所有的子目录和子文件也会拥有相同的 ACL 权限。

    setfacl -m u:用户名:权限 -R 文件名
    

      

    默认 ACL 权限

    如果给父目录设定了默认的 ACL 权限,那么父目录中所有新建的子文件会继承父目录的 ACL 权限。

    setfacl -m d:u:用户名:权限 文件名
    

      

  • 相关阅读:
    Oracle Sql优化之日期的处理
    python excel转xml
    3、vue项目里引入jquery和bootstrap
    1、vue.js开发环境搭建
    2、vue-router2使用
    go 初步
    一个全局变量引起的DLL崩溃
    在linux用gdb查看stl中的数据结构
    gdb看core常用命令
    redis常用命令
  • 原文地址:https://www.cnblogs.com/-wenli/p/10355079.html
Copyright © 2011-2022 走看看