##控制对文件的访问##


##学习目标:

*读取文件权限

*设定权限列表

*设备权限列表加载


1.权限列表的读取

[kiosk@foundation0 Desktop]$ getfacl file

# file: file 文件名称

# owner: kiosk 文件所有人

# group: kiosk 文件所有组

user::rw- 用户权限

user:kiosk:rwx 特殊指派用户及权限

group::rw-组权限

mask::rwx可指派最大权限

other::r-- 其他人权限

wKiom1j15QfzOELZAADa_vJHbRk796.png

2.setfacl 用于设置或修改文件的 ACL

*setfacl -m u:bob:rw filename

– 授予用户 bob 读写权限

wKioL1j15Qeguyf1AAENdBo-1aU672.png

*setfacl -m g:westos:rw filename

– 授予组 westos 读写权限

wKioL1j15QihO2ncAAD687y97XM826.png

*setfacl -m g:redhat:r filename

– 授予组 redhat 读的权限

wKiom1j15QjjCdCiAAEjVczFJQI003.png

*setfacl -x u:bob filename

– 删除用户 bob 的 ACL 权限

wKioL1j15QnT2OT7AADOZhyIgy4375.png

wKiom1j15QnBuAI1AAC2KRLyan4497.png

* setfacl -m o::- filename

– 修改其他所有人的权限为空

wKioL1j15QrT5C5sAADEiBbPRCc564.png

* setfacl  -b filename

- 自动删除授予的所有人,组和其他人的ACL权限

wKiom1j15QvRILc8AAKMVOJ03b8094.png

3.ACL 掩码及继承

*具有 ACL 的文件拥有一个“ mask” (掩码 ),这个掩码既能够限制拥有该文件的组的最大权限 ,有能 够限制 ACL中的补充用户和组所拥有的最大权限

*setfacl -m m:rwx file


wKiom1j15QzR4KA1AAHZWFRzmVs378.png

wKioL1j15QyTgsTXAAHG5RmrQA8249.png


*目录可以有“默认 ACL” 条目 ,系统自动针对在该目录中创建的新文件设置这些条目,这类似 setgid 权限的方法(针对目录时),使得在该目录中创建的新文件归拥有该目录的组所有。

*setfacl -m d:u:bob:rw directory


wKiom1j15Q2DDamTAAE1h6jTdK8907.png

wKiom1j15Q2D9ArNAAF0J_O2e_A169.png


wKioL1j15Q6gfRIYAAF8O8AXCJQ352.png

wKioL1j15Q6BBuFDAAHoksDfij4679.png

4.设备权限列表加载

*挂载文件系统之后 ,必须启用对 POSIX ACL 条目的支持

*安装程序会配置它创建的所有ext4 文件系统,以自动启用 ACL 支持

*tune2fs -l /dev/sda1 |grep "Default mount"

Default mount options:

user_xattr acl

*如果手动格式化文件系统 ,则需要使用ACL 挂载选项挂载该系统

*tune2fs -o user_xattr,acl /dev/sda1