文件访问控制列表FACL(File Access Control Lists),它允许为文件和目录设置更为具体的用户和组权限,而不仅仅是所有者、所属组和其他用户的权限。
一、facl的设置
1.getfacl的使用
语法格式:
getfacl [options] [FILE]
常用选项:
选项 | 作用 |
---|---|
-a | 仅显示文件访问控制列表 |
-R | 递归显示 |
-d | 仅显示默认权限控制列表 |
-e | 显示有效权限注释 |
-E | 显示无效权限 |
-v | 显示版本 |
-h | 显示帮助信息 |
[root@work1 ~]# ll
drw-r--r-- 8 755 root 154 Oct 21 14:04 study
[root@work1 ~]# getfacl study
# file: study
# owner: 755
# group: root
user::rw-
group::r--
other::r--
2.setfacl的使用
语法格式:
setfacl [options] [FILE]
常用选项:
选项 | 作用 |
---|---|
-m | 更改文件的访问控制列表 |
-R | 递归操作 |
-b | 删除所有扩展访问控制列表条目 |
-d | 应用到默认访问控制列表的操作,只能对目录进行设置 |
-k | 移除默认访问控制列表 |
-M | 从文件读取访问控制列表条目更改 |
--mask | 重新计算有效掩码 |
--restore | 恢复访问控制列表 |
-v | 显示版本并退出 |
-h | 显示帮助信息 |
#更改facl权限列表
[root@work1 ~]# setfacl -m u:root:rw file1
[root@work1 ~]# setfacl -m g:root:rw file1
# mask权限,是指用户或用户组拥有的最大权限
[root@work1 ~]# getfacl file1
# file: file1
# owner: 755
# group: root
user::rw-
user:root:rw-
group::r--
group:root:rw-
mask::rw-
other::r--
二、facl权限备份和恢复
1.备份
[root@work1 ~]# getfacl -R file1 > bak.acl
2.对文件facl权限进行修改
[root@work1 ~]# setfacl -m g:root:rw file1
[root@work1 ~]# getfacl file1
# file: file1
# owner: 755
# group: root
user::rw-
user:root:rw-
group::r--
group:root:rw-
mask::rw-
other::r--
3.恢复
[root@work1 ~]# setfacl --restore bak.acl
[root@work1 ~]# getfacl file1
# file: file1
# owner: 755
# group: root
user::rw-
user:root:rw-
group::r--
mask::rw-
other::r--
三、设置默认访问控制列表
1.创建目录,配置facl,对目录设置默认权限
[root@work1 ~]# mkdir test
[root@work1 ~]# setfacl -dRm u:test:rwx test
[root@work1 ~]# getfacl test
# file: test
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:test:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
2.在test目录下创建文件和目录,查验facl权限是否为默认权限
[root@work1 ~]# touch test/file
[root@work1 ~]# mkdir test/dir
[root@work1 ~]# getfacl -R test
# file: test
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:test:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
# file: test/file
# owner: root
# group: root
user::rw-
user:test:rwx #effective:rw-
group::r-x #effective:r--
mask::rw-
other::r--
# file: test/dir
# owner: root
# group: root
user::rwx
user:test:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:test:rwx
default:group::r-x
default:mask::rwx
default:other::r-x