前言
近期工作遇到需要多个账号同时需要某个文件的读写权限的,先是尝试用chmod的3大权限来设置,后有前辈指出可用facl设置,查阅资料后,粗略记录实验结果如本章所示;如有遗漏和错误之处,敬请各位看官指出,谢谢。
实验环境:
Linux的Distribution:
[[email protected] ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.2 (Santiago)
setfacl的版本号:
[[email protected] ~]# setfacl -version
setfacl 2.2.49
实验目的:
用户a和b同时拥有对test.txt的r权限。
实验过程记录:
1、新建用户a和b,a和b同处用户组test,新建text.txt文件,并授权给用户a
[[email protected] ~]# groups a
a : test
[[email protected] ~]# groups b
b : test
2、查看目前text.txt文件的ACL属性:
[[email protected] ~]# getfacl /home/test.txt
getfacl: Removing leading ‘/‘ from absolute path names
# file: home/test.txt
# owner: a
# group: test
user::r--
group::---
mask::---
other::---
3、直接用chmod
因为用户a和b同属group text,文件test.txt属于用户a,所以可以直接设置group有r权限;但不足之处是:这样同处于group test的其他用户也拥有权限。
[[email protected] ~]# getfacl /home/test.txt
getfacl: Removing leading ‘/‘ from absolute path names
# file: home/test.txt
# owner: a
# group: test
user::rwx
group::r--
other::---
此时用户b可以访问test.txt:
[[email protected] ~]$ cat /home/test.txt
Hello World!
4、使用setfacl设置文件ACL
先chmod 700 /home/test.txt 将文件ACL还原,然后再次实验:
[[email protected] ~]# setfacl -m u:b:r /home/test.txt
[[email protected] ~]# getfacl /home/test.txt
getfacl: Removing leading ‘/‘ from absolute path names
# file: home/test.txt
# owner: a
# group: test
user::rwx
user:b:r--
group::---
mask::r--
other::---
此时用户b可以访问test.txt文件。
5、指令补充说明
setfacl -m u:b:r /home/test.txt;指令格式如左,-m 后接u:b:r(用户:用户名:权限),其中如果想设置group权限,可将u换成g;r处若需全部权限可直接:rwx。
实验总结:
通过该实验,加深了对facl设置的理解,了解可以通过setfacl灵活的设置文件ACL,而无需过多的设置用户组分类。