facl文件访问控制列表
facl 针对某个用户单独设置权限,权限设置精度更高
设置facl权限
setfacl
添加facl权限
# 给用户添加权限
setfacl -m u:zhangsan:rwx file
# 给用户组添加权限
setfacl -m g:dev:r-- file
删除facl权限
# 删除指定用户的权限
setfacl -x u:zhangsan file
# 删除指定用户组的权限
setfacl -x g:dev file
清空facl权限
# 清空文件的facl权限
setfacl -b file
查看facl权限
getfacl
facl权限匹配规则
facl权限是从上到下匹配的,一旦匹配到就停止匹配
# 创建用户zhangsan
useradd zhangsan
# 给文件设置用户zhangsan的权限为---
setfacl -m u:zhangsan:--- file
# 给文件设置用户组zhangsan的权限为rw-
setfacl -m g:zhangsan:rw- file
# 查看facl权限
[zhangsan@localhost ~]$ getfacl file
# file: file
# owner: zhangsan
# group: zhangsan
user::rw-
user:zhangsan:---
group::rw-
group:zhangsan:rw-
mask::rw-
other::r--
# 使用zhangsan用户cat file
[zhangsan@localhost ~]$ cat file
cat: file: 权限不够
mask
实验
# 先创建一个目录facltest
mkdir facltest
# 将权限设置为000
chmod 000 facltest
# 针对zhangsan用户设置rwx权限
setfacl -Rm u:zhangsan:rwx facltest
# facltest目录会产生rwx权限
## 注意.变成了+
[root@localhost ~]# ls -ld facltest/
d---rwx---+ 2 root root 6 8月 15 18:44 facltest/
## 这时候除了root和zhangsan用户,都无法访问facltest目录了
# 查看facltest目录的facl权限
[root@localhost ~]# getfacl facltest/
# file: facltest/
# owner: root
# group: root
user::---
user:zhangsan:rwx
group::---
mask::rwx
other::---