1. setfacl命令可以用来细分linux下的文件权限。
  2. chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限。
  3. 换句话说,setfacl可以更精确的控制权限的分配。
  4. 比如:让某一个用户对某一个文件具有某种权限。
  5.  
  6. 这种独立于传统的u,g,orwx权限之外的具体权限设置叫ACLAccess Control List
  7. ACL可以针对单一用户、单一文件或目录来进行r,w,x的权限控制,对于需要特殊权限的使用状况有一定帮助。
  8. 如,某一个文件,不让单一的某个用户访问。
  9.  
  10.  setfacl 参数
  11. Usage: setfacl [-bkndRLP] { -m|-M|-x|-... } file ...
  12.   -m, --modify=acl        modify the current ACL(s) of file(s)
  13.   -M, --modify-file=file  read ACL entries to modify from file
  14.   -x, --remove=acl        remove entries from the ACL(s) of file(s)
  15.   -X, --remove-file=file  read ACL entries to remove from file
  16.   -b, --remove-all        remove all extended ACL entries
  17.   -k, --remove-default    remove the default ACL
  18.       --set=acl           set the ACL of file(s), replacing the current ACL
  19.       --set-file=file     read ACL entries to set from file
  20.       --mask              do recalculate the effective rights mask
  21.   -n, --no-mask           don't recalculate the effective rights mask
  22.   -d, --default           operations apply to the default ACL
  23.   -R, --recursive         recurse into subdirectories
  24.   -L, --logical           logical walk, follow symbolic links
  25.   -P, --physical          physical walk, do not follow symbolic links
  26.       --restore=file      restore ACLs (inverse of `getfacl -R')
  27.       --test              test mode (ACLs are not modified)
  28.   -v, --version           print version and exit
  29.   -h, --help              this help text
  30.  
  31. 例子:在/test 下建立一个test文件   将权限改为777  并查看其ACL设置
  32. [root@localhost ~]# cd /test/
  33. [root@localhost test]# touch test.txt
  34. [root@localhost test]# echo 123  > test.txt 
  35. [root@localhost test]# cat test.txt 
  36. 123
  37. [root@localhost test]# chmod 777 test.txt 
  38. [root@localhost test]# ll
  39. 总用量 0
  40. -rwxrwxrwx. 1 root root 0 2   6 20:40 test.txt
  41. [root@localhost test]# getfacl test.txt 
  42. # file: test.txt                          //文件名
  43. # owner: root                            //文件所属者
  44. # group: root                             //文件所属组
  45. user::rwx                                    //文件所属者权限
  46. group::rwx                                 //同组用户权限
  47. other::rwx                                  /其它者权限
  48.  
  49. 现在我们让handsome用户只有读取的权限
  50.  
  51. [root@localhost test]# setfacl -m u:handsome:r test.txt 
  52. [root@localhost test]# ll
  53. 总用量 4
  54. -rwxrwxrwx+ 1 root root 0 2   6 20:40 test.txt        //权限的最后多了一个“+”
  55. [root@localhost test]# getfacl test.txt 
  56. # file: test.txt
  57. # owner: root
  58. # group: root
  59. user::rwx
  60. user:handsome:r--                                    //handsome的权限为r
  61. group::rwx
  62. mask::rwx
  63. other::rwx
  64.  
  65. 通过handsome用户验证一下:
  66. [root@localhost test]# su - handsome 
  67. [handsome@localhost ~]$ cat /test/test.txt 
  68. 123
  69. [handsome@localhost ~]$ echo 456 >> /test/test.txt 
  70. -bash: /test/test.txt: 权限不够
  71.  
  72. 除了对某个文件的单个用户进行权限设置外,还可以对某个组进行同样的设置:g:[用户组]:[rwx]
  73.  
  74. 还能对有效权限(mask)进行设置:有效权限(mask) 即用户或组所设置的权限必须要存在于mask的权限设置范围内才会生效
  75.               
  76.  
  77. 最后取消ACL权限:
  78. [root@localhost test]# setfacl -x u:handsome test.txt 
  79. [root@localhost test]# ll
  80. 总用量 8
  81. -rwxrwxrwx+ 1 root root 4 2   6 20:47 test.txt
  82.  
  83. 删除所有acl
  84. [root@localhost test]# setfacl -b test.txt 
  85. [root@localhost test]# ll
  86. 总用量 4
  87. -rwxrwxrwx. 1 root root 4 2   6 20:47 test.txt 

setfacl语法2的更多相关文章

  1. setfacl语法

    1.setfacl的用途setfacl命令可以用来细分linux下的文件权限. chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限. 换句话说 ...

  2. getfacl语法2

    一.setfacl——设定文件访问控制列表语法: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...  -m, --modify=acl 更改文件的访问控制 ...

  3. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  4. Swift与C#的基础语法比较

    背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...

  5. 探索C#之6.0语法糖剖析

    阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...

  6. [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性

    回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...

  7. Velocity初探小结--velocity使用语法详解

    做java开发的朋友一般对JSP是比较熟悉的,大部分人第一次学习开发View层都是使用JSP来进行页面渲染的,我们都知道JSP是可以嵌入java代码的,在远古时代,java程序员甚至在一个jsp页面上 ...

  8. node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法

    1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...

  9. C#语法糖大汇总

    首先需要声明的是"语法糖"这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕 ...

随机推荐

  1. 使用go语言数据库

    1.下载并导入数据库驱动包(注意配置环境变量.数据库.go.以及ENV) 这里选择了Go-MySQL-Driver这个实现.地址是:https://github.com/go-sql-driver/m ...

  2. Linux 默认线程栈大小 调优

    Linux 线程栈介绍 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区.里面的变量通常是局部变量.函数参数等:和堆相比,栈通常很小. Linux 查询线程栈 1.查看默认的 ...

  3. yum无法安装的pdksh

    yum无法安装的pdksh,本地pdksh-5.2.14-37.el5_8.1.x86_64.rar,点击下载.

  4. Java Web获取Web应用根路径

    最基本的 1,request.getRealPath("/");这个方法已不推荐用 2,在Servlet 里用this.getServletContext().getRealPat ...

  5. Ansible 的安装

    On Fedora: $ sudo dnf install ansible On RHEL and CentOS: $ sudo yum install ansible On Ubuntu: $ su ...

  6. STS的安装与简单使用

    一,STS下载与安装 1.下载地址:http://spring.io/tools3/sts/all 2.选择对应版本安装或者解压 二,STS简单使用 1.快捷方法 (1)main+alt+/+回车 = ...

  7. 委托&&异步

    private void ShowMessage(string message) { this.BeginInvoke(new MethodInvoker(delegate { txtSysMessa ...

  8. 输出JSON

    <?php header("Content-type: text/html; charset=utf-8"); $host = '数据库IP'; $dbname = '数据库 ...

  9. 整数转罗马数字以及罗马数字转整数(java实现)

    题目: 1.罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II  ...

  10. POJ-3233 Matrix Power Series 矩阵A^1+A^2+A^3...求和转化

    S(k)=A^1+A^2...+A^k. 保利求解就超时了,我们考虑一下当k为偶数的情况,A^1+A^2+A^3+A^4...+A^k,取其中前一半A^1+A^2...A^k/2,后一半提取公共矩阵A ...