Linux文件访问控制列表FACL

文件访问控制列表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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容