一.ACL权限管理简介
ACL(Access Control List,访问控制列表)是一种文件权限管理机制,它提供了比传统的UGO(用户、组、其他)权限更灵活的权限设置方式。以下是ACL的一些主要功能:
- 针对特定用户或用户组设置权限:ACL允许管理员为特定的用户或用户组设置访问某个文件或目录的权限,而不影响其他用户的权限。
- 子文件/目录继承父目录的权限:在ACL中,可以设置子文件和子目录继承父目录的权限,这样可以简化权限管理的工作。
- 解决传统权限分配的限制:在传统的Linux文件权限中,一个文件只有所有者、所属组和其他用户的权限设置,这在某些复杂的权限需求面前显得不够用。ACL通过提供更多的权限设置选项,解决了这一问题。
- 检查和支持ACL:要使用ACL,需要确保Linux内核和文件系统支持。大多数现代Linux发行版默认都支持ACL,但可以通过命令如
dumpe2fs
来检查文件系统的ACL支持状态。- 挂载时启用ACL:如果某些分区没有启用ACL,可以通过
mount
命令重新挂载分区并加入acl
选项来启用ACL权限。- 操作系统的支持:不同的操作系统对ACL的支持程度可能不同。例如,CentOS 6.x系统中ACL权限默认是开启的,而在其他系统中可能需要手动开启或检查ACL权限的状态。
二.操作步骤
1. 添加测试目录,用户,组,并将用户添加到组(创建zs,ls添加到tgroup组中)
输入mkdir /project然后ll查看即可
查看组是否正常建立 (输入cat/ect/group)进行查看
修改目录的所有者和所属组
设定权限
此时需要为临时用户进行分配权限, r-x 添加临时用户
为临时用户分配特定权限
查看目录权限,注意+,表示文件或目录有acl权限
验证acl权限
切换到tempuser用户
验证可以进入project目录
验证不能在project中创建文件
控制组的ACL权限
groupadd temp
创建一个temp组
setfacl -m g:temp:rx /project
设置组的ACL
getfacl /project
查看设置后ACL
创建一个用户,并将该用户设置为temp组
useradd tempu02
passwd tempu02
将用户添加到temp组中
gpasswd -a tempu02 temp
验证
su tempu02
可以进入目录
cd /project
不能创建文件
touch aa.txt