setfacl 设置文件访问控制列表

setfacl 设置文件访问控制列表ide

用法:测试

setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...

参数:spa

  -m, --modify=acl       更改文件的访问控制列表
  -M, --modify-file=file    从文件读取访问控制列表条目更改
  -x, --remove=acl       根据文件中访问控制列表移除条目
  -X, --remove-file=file    从文件读取访问控制列表条目并删除
  -b, --remove-all           删除全部扩展访问控制列表条目
  -k, --remove-default       移除默认访问控制列表
      --set=acl              设定替换当前的文件访问控制列表
      --set-file=file        从文件中读取访问控制列表条目设定
      --mask            从新计算有效权限掩码
  -n, --no-mask         不从新计算有效权限掩码
  -d, --default         应用到默认访问控制列表的操做
  -R, --recursive         递归操做子目录
  -L, --logical         依照系统逻辑,跟随符号连接
  -P, --physical         依照天然逻辑,不跟随符号连接
      --restore=file       恢复访问控制列表,和“getfacl -R”做用相反
      --test            测试模式,并不真正修改访问控制列表属性
  -v, --version              显示版本并退出
  -h, --help                 显示本帮助信息

案例1:rest

[root@localhost ~]# getfacl test
# file: test
# owner: root
# group: root
user::r-x
user:tank:rwx                   #effective:---
group::r-x                      #effective:---
mask::---
other::---

[root@localhost ~]# setfacl -m u:zhangy:rw- test    #修改文件的acl权限,添加一个用户权限
[root@localhost ~]# getfacl test
# file: test
# owner: root
# group: root
user::r-x
user:zhangy:rw-                       #多出来一个用户
user:tank:rwx
group::r-x
mask::rwx
other::---

[root@localhost ~]# setfacl -m g:zhangying:r-w test      #添加一个组
[root@localhost ~]# getfacl test
# file: test
# owner: root
# group: root
user::r-x
user:zhangy:rw-
user:tank:rwx
group::r-x
group:zhangying:rw-
mask::rwx
other::---
赋值添加用户组权限

案例2:code

[root@localhost ~]# getfacl test     #查看acl
# file: test
# owner: root
# group: root
user::rw-
group::r--
other::r--

[root@localhost ~]# setfacl -m u:tank:rx test   #给tank用户向test文件增长读和执行的acl规则
[root@localhost ~]# getfacl test    #查看acl
# file: test
# owner: root
# group: root
user::rw-
user:tank:r-x      #已加入
group::r--
mask::r-x
other::r--

[root@localhost ~]# setfacl -m u::rwx test   #设置默认用户,读,写,可执行
[root@localhost ~]# getfacl test
# file: test
# owner: root
# group: root
user::rwx
user:tank:r-x
group::r--
mask::r-x
other::r--

[root@localhost ~]# setfacl -b test     #清除全部acl
[root@localhost ~]# getfacl test 
# file: test
# owner: root
# group: root
user::rwx
group::r--
other::r--

[root@localhost ~]# setfacl -m u:tank:rx test      #给tank用户向test文件增长读和执行的acl规则
[root@localhost ~]# setfacl -m u:testtank:rx test  #给testtank用户向test文件增长读和执行的acl规则
[root@localhost ~]# getfacl test
# file: test
# owner: root
# group: root
user::rwx
user:testtank:r-x
user:tank:r-x
group::r--
mask::r-x
other::r--

[root@localhost ~]# setfacl -x u:tank test    #清除tank用户,对test文件acl规则
[root@localhost ~]# getfacl test
# file: test
# owner: root
# group: root
user::rwx
user:testtank:r-x
group::r--
mask::r-x
other::r--
案例2

 

设置组的话只须要把setfacl -m u::rwx 中的u改成g便可,大体差很少。blog

设置mask的话,setfacl -m u::rwx 中的u改成m,而且这个可不针对用户和组哦,其余的大体差很少。递归

在使用-R时,记得放在-m前面,不然不能够地rem

使用-d的话,就会把默认的都加上去,针对目录哦。get