ACL即Access Control List 主要的目的是提供传统的owner,group,others的read,write,execute权限之外的具体权限设置,ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助。如,某一个文件,不让单一的某个用户访问。

ACL使用两个命令来对其进行控制

     getfacl:取得某个文件/目录的ACL设置项目

     setfacl:设置某个文件/目录的ACL设置项目
setfacl 参数

  -m:设置后续acl参数 

  -x:删除后续acl参数  

  -b:删除全部的acl参数

  -k:删除默认的acl参数

  -R:递归设置acl,包括子目录

  -d:设置默认acl

例:创建一文件test,将其权限修改为777,并查看其默认ACL权限配置

[root@Self-study ~]# touch /test

    [root@Self-study ~]# chmod  /test

    [root@Self-study ~]# getfacl /test             //获得文件的ACL权限

    getfacl: Removing leading '/' from absolute path names

    # file: test                                //文件名

    # owner: root                             //文件所属者

    # group: root                             //文件所属组

    user::rwx                                //文件所属者权限

    group::rwx                               //同组用户权限

    other::rwx                               //其它者权限

[root@Self-study ~]# 

可以看到其它者的权限也是可读可写可执行,可以自行测试,现在我们修改其ACL策略,使用用户code只有读取的权限

 [root@Self-study ~]# setfacl -m u:code:r /test

[root@Self-study ~]# ll /test

-rwxrwxrwx+  root root  Apr  : /test            //可以看到权限的最后多了一个”+”号

[root@Self-study ~]# 

现在再次查看一下此文件的ACL属性

[root@Self-study ~]# getfacl /test

getfacl: Removing leading '/' from absolute path names

# file: test

# owner: root

# group: root

user::rwx

user:code:r--                           //可以看到code单独的权限为r--

group::rwx

mask::rwx

other::rwx

[root@Self-study ~]# 

注:code的权限并不是只根据ACL配置来决定的,它是由code用户基本权限与配置的ACL权限的“与”运算决定的,即other:rwx 与 code:r--  = code:r--

现在使用code用户,测试是否可写

在写文件时,会出现-- INSERT -- W10: Warning: Changing a readonly file提示。

除了对单个用户进行设置外,还可以对用户组、有效权限(mask)进行设置如对用户组设置:    g:[用户组]:[rwx]

注:有效权限(mask) 即用户或组所设置的权限必须要存在于mask的权限设置范围内才会生效

如上面的/test文件,已经有了可读权限,如果我们把它的有效权限修改为只有写权限,则设置的acl权限不在有效权限之内,则用户code就不可能再查看/test文件中的内容了

[root@Self-study ~]# setfacl -m m:w /test              //设置有效权限为只写

可以查看/test acl属性

[root@Self-study ~]# getfacl /test

getfacl: Removing leading '/' from absolute path names

# file: test

# owner: root

# group: root

user::rwx

user:code:r-- #effective:---

group::rwx #effective:-w-

mask::-w-                       //可以看到有效权限已经修改成功

other::rwx

[root@Self-study ~]# 

使用code用户查看文件内容,首先使用root用户写入一些内容,会使测试更加直观

[root@Self-study ~]# echo "this is a test getfacl " >/test

[code@Self-study ~]$ vim /test 

 "/test" [Permission Denied]                     //可以在最下面看到不允许访问的提示,并且看不到任何内容

取消acl权限

[root@Self-study ~]# setfacl -x u:code /test             //取消/test对用户code的权限

    [root@Self-study ~]# setfacl -x m /test                 //恢复有效权限

    [root@Self-study ~]# getfacl /test               

    getfacl: Removing leading '/' from absolute path names

    # file: test

    # owner: root

    # group: root

    user::rwx

    group::rwx

    other::rwx

    [root@Self-study ~]# ll /test

    -rwxrwxrwx  root root  Apr  : /test              //已经可以正常使用

    [root@Self-study ~]# 

至于另外的一些参数,自己尝试使用!!

linux ACL权限规划:getfacl,setfacl使用的更多相关文章

  1. ACL权限设置命令setfacl和getfacl命令

    ACL权限设置命令setfacl和getfacl命令 setfacl命令是用来在命令行里设置ACL(访问控制列表).在命令行里,一系列的命令跟随以一系列的文件名. [TOC] 选项 |参数|说明|   ...

  2. Linux ACL 权限之进阶篇

    笔者在<Linux ACL 权限>一文中介绍了 Linux ACL 权限的基本用法,本文笔者将尝试探究 ACL 中的基本概念和实现原理,希望能够通过进一步的加深对 Linux 权限系统的理 ...

  3. Linux ACL 权限

    ACL 是什么 ACL的全称是 Access Control List (访问控制列表) ,一个针对文件/目录的访问控制列表.它在UGO权限管理的基础上为文件系统提供一个额外的.更灵活的权限管理机制. ...

  4. LInux ACL权限控制

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

  5. linux ACL权限

    利用这两个指令就可以了: getfacl:获取某個文件的 ACL 设置 setfacl:设置某個文件的 ACL 规范 [root@study ~]# setfacl [-bkRd] [{-m|-x} ...

  6. Linux ACL权限查看与设定

    getfacl 文件名,可以查看文件的acl权限 setfacl [选项] 文件名,可以设定文件的acl权限,例如:setfacl -m u:boduo:rx /project/ 这时候,创建了bod ...

  7. 12 Linux ACL权限

    1.查看facl权限 getfacl /home/test.txt [root@localhost ~]# getfacl /home/test.txt getfacl: Removing leadi ...

  8. facl权限(getfacl/setfacl)

    file access control list:文件访问控制列表 查看facl: [root@localhost test]# getfacl hei # file: hei # owner: ro ...

  9. Linux文件目录权限浅谈

    1.基本权限三种(1)r (read) 读 针对目录,有读(r)权限就代表能对此目录有列表功能,就是可以执行ls命令进行查看,另外还有cp的功能.针对文件,有读(r)权限就代表能对此文件有阅读功能,可 ...

随机推荐

  1. ECMAScript 5中属性的特性值

    这是<JavaScript高级程序设计(第三版)>第六章相关内容的总结. ECMAScript中有两种属性:数据属性和访问器属性.每种属性都有四个特性值. 数据属性的四个特性值: [[Co ...

  2. spring-boot - demo

    当我发现把最初的一个demo整的面目全非的时候,突然想要找一个简单的demo做测试,发现与其在原来的上面该,还不如新建一个demo. 官方入门:http://projects.spring.io/sp ...

  3. WinForm 窗体属性 窗体美化

    WinForm是·Net开发平台中对Windows Form的一种称谓. Windows窗体的一些重要特点如下: 功能强大:Windows窗体可用于设计窗体和可视控件,以创建丰富的基于Windows的 ...

  4. 【Win10开发】响应式布局——AdaptiveTrigger

    接触过Windows10的童鞋已经知道Universal app不仅可以运行在pc上,还可以运行在mobile或者其他平台上.那么这样势必会带来一个问题,如何针对不同屏幕来进行布局适配.所以微软提供了 ...

  5. css3全屏背景图片切换特效

    效果体验:http://hovertree.com/texiao/css3/10/ 一般做图片切换效果,都会使用JS或者jQuery脚本,今天发现,其实只用CSS也可以实现.试试效果吧. 效果图: 代 ...

  6. 【C#公共帮助类】枚举独特类

    这个是枚举类,可能大家根据个人需求不同,不是很需要,但是跟着做那个项目的朋友会用到 我在这贴一下代码 using System; using System.Collections.Generic; u ...

  7. iOS开发之CocoaPods的安装与使用

    前言部分 iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods) 可以用来方便的统一管理这些第三方库. 一.安装 由 ...

  8. EF架构~EF异步改造之路~让DbContextRepository去实现异步接口

    回到目录 返回异步与并行目录 上一讲中,我们定义了三个异步操作接口,这回我们将对它进行实现,而有一个基础知识需要大家清楚,那就是实现接口的方式,一般我们使用默认的方式(隐式实现),这种方法实现的接口方 ...

  9. aspx后台传递Json到前台的两种接收方法

    第一种:前台接收 dataType: "json",                success: function (data) {                    va ...

  10. java.net.SocketException: Software caused connection abort: socket write error

    用Java客户端程序访问Java Web服务器时出错: java.net.SocketException: Software caused connection abort: socket write ...