LINUX.jpg
ACL: 访问控制列表 access control list
实现灵活的权限管理
设置ACL权限setfacl
显示file1文件原有权限
[root@centos7 ~]#ls -ld file1
-rw-r--r--. 1 root root 20 Aug 17 22:43 file1
查看test用户id信息
[root@centos7 ~]#id test
uid=1001(test) gid=1001(test) groups=1001(test)
为test用户添加ACL读写(rw)权限
[root@centos7 ~]#setfacl -m u:test:rw file1
查看file1文件权限改变,多出“+”符号
[root@centos7 ~]#ll file1
-rw-rw-r--+ 1 root root 20 Aug 17 22:43 file1
查看file1文件的ACL权限列表
[root@centos7 ~]#getfacl file1
# file: file1 ## 文件名称
# owner: root ## 所有着
# group: root ## 所属组
user::rw- ## 所有者权限
user:test:rw- ## test用户权限
group::r-- ## 所属组权限
mask::rw- ## 隐藏权限(ACL权限,所有的权限只能比它小)
other::r-- ## 其他用户权限
删除指定用户对file1文件的ACL权限
[root@centos7 ~]#setfacl -x test file1
[root@centos7 ~]#getfacl file1
# file: file1
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--
删除所有用户对file1文件的ACL权限
[root@centos7 ~]#setfacl -b file1
[root@centos7 ~]#getfacl file1
# file: file1
# owner: root
# group: root
user::rw-
group::r--
other::r--
修改mask值
[root@centos7 ~]#setfacl -m mask::r file1
[root@centos7 ~]#getfacl file1
# file: file1
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--
补充
1.centos7上安装操作系统前创建的文件系统,自动添加ACL功能;安装操作系统后添加的磁盘并创建文件系统,需要手动添加ACL功能
tune2fs -o acl /dev/sdb1
mount -o acl /dev/sdb1 /mnt/sdb1
2.创建ACL权限后,如何确定用户对文件所拥有的权限
- 判断用户是否是该文件的所属主。如果是所属主,则执行所属主的权限。
- 如果不是所属主,则判断是否添加了用户ACL权限
- 如果没有添加用户ACL权限,判断是否添加了组ACL权限
- 如果用户属于多个组,没有设置用户ACL权限,且多个组添加了ACL权限,用户对文件的权限位多个组权限的并集
3.批量添加、删除ACL权限
批量添加 ACL权限
setfacl -M acl.txt file1
批量删除ACL权限
setfacl -X dacl.txt file1
4.备份ACL权限
getfacl -R file1> acl.txt
恢复ACL权限
setfacl --restore acl,txt file1
网友评论