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. Linux中读写权限

    learn the auth of Linux.   Generally, r-x w: write , modify and delete  -2 r: read   -4 x: execute   ...

  2. .Net(c#)汉字和Unicode编码互相转换

    {"Tilte": "\u535a\u5ba2\u56ed", "Href": "http://www.cnblogs.com&q ...

  3. EF Fluent API上

     什么是Fluent API? 官方答案:EF 中内嵌的约定将 POCO 类映射到表.但是,有时您无法或不想遵守这些约定,需要将实体映射到约定指示外的其他对象,所以Fluent API和注解都是一种方 ...

  4. jQuery弹出深色系层菜单

    低调奢华jQuery弹出层菜单,使用新版的jQuery库,兼容多种浏览器.Demo展示: http://hovertree.com/texiao/layer/3/ 本特效可以作为网站的引导页,使用jQ ...

  5. should be mapped with insert="false" update="false

    SSH项目出现了 should be mapped with insert="false" update="false 错误,仔细检查后发现,是两个不同的属性映射了表中的 ...

  6. Thinking in Java——笔记(20)

    Annotations They provide information that you need to fully describe your program, but that cannot b ...

  7. Xdebug文档(四)函数跟踪

    Xdebug能让你把所有函数调用,包括参数和返回值以不同的格式记录到文件中. 这些号称“函数跟踪”功能能帮助你面对一个新应用程序,亦或者在程序运行时你想弄清楚它在做什么.函数跟踪功能可以选择性地显示函 ...

  8. Spark on Yarn 学习(一)

    最近看到明风的关于数据挖掘平台下实用Spark和Yarn来做推荐的PPT,感觉很赞,现在基于大数据和快速计算方面技术的发展很快,随着Apache基金会上发布的一个个项目,感觉真的新技术将会不断出现在大 ...

  9. CSS3文本溢出显示省略号

    CCS3属性之text-overflow:ellipsis;的用法和注意之处 语法: text-overflow:clip | ellipsis 默认值:clip 适用于:所有元素 clip: 当对象 ...

  10. iOS 苹果开发证书失效的解决方案(Failed to locate or generate matching signing assets)

    从2月14日开始,上传程序的同学可能会遇到提示上传失败的提示. 并且打开自己的钥匙串,发现所有的证书全部都显示此证书签发者无效. 出现以下情况: Failed to locate or generat ...