Linux学习 - ACL权限
一、ACL权限简介
ACL权限是为了防止权限不够用的情况,一般的权限有所有者、所属组、其他人这三种,当这三种满足不了我们的需求的时候就可以使用ACL权限
二、ACL权限开启
1 查看当前系统分区
df -h
2 查看分区ACL权限是否开启
dumpe2fs -h /dev/sda5
dumpe2fs命令是查询指定分区详细文件系统信息的命令
此时显示默认的挂载设置为ACL
3 临时开启分区ACL权限
mount -o remount,acl /
重新挂载根分区,并挂载加入acl权限
4 永久开启分区ACL权限
vi /etc/fstab
如果默认的挂载设置不是ACL,可以在default改成default,acl
mount -0 remount /
重新挂载文件系统或重新启动系统,是修改生效
三、查看ACL权限
getfacle 文件名
四、设定ACL权限
useradd zhangsan 新建用户zhangsan
useradd lisi 新建用户lisi
useradd student 新建用户student
groupadd testg 新建组testg
mkdir /project 根目录下创建目录project
gpasswd -a zhangsan testg 将zhangsan添加到组testg中
gpasswd -a lisi testg 将lisi添加到组testg中
chown root:testg /project/ 更改project目录所有者、所属组
chmod 770 /project 更改project目录的权限
setfacl -m u:student:rx /project/ 设定用户student对project目录的acl权限
groupadd test1g
setfacl -m g:test1g:rwx /project/ 设定组test1g对project目录的acl权限
注:project目录的所有者是root,所属组是testg;用户zhangsan和lisi是testg组的附属成 员;用户student不属于project目录的所有者、所属组、其他人,设定用户student对 project目录的ACL权限为r-x权限;test1g组不是project目录的所属组,设定test1g组 对project目录的ACL权限为rwx权限
五、修改ACL最大有效权限mask
setfacl -m m:rx /project/ 设定最大有效权限mask为r-x
注:当最大有效权限mask为r-x时,将其他用户或者组的权限与上r-x得到实际权限
六、删除ACL权限
setfacl -x u:student /project/ 删除用户student对project目录的ACL权限
setfacl -x g:test1g /project/ 删除组test1g对project目录的ACL权限
setfacl -b /project/ 删除所有对/project/目录的ACL权限
七、设置递归ACL权限
setfacl -m u:用户名:权限 -R 目录名
-R 递归
例:setfacl -m u:student:rx -R /project/
八、默认递归ACL权限
setfacl -m d:u:用户名:权限 目录名
例:setfacl -m d:u:student:rx -R /project/
setfacl [选项] 文件名
-m 设定ACL权限
-x 删除指定的ACL权限
-b 删除所有的ACL权限
-d 设定默认ACL权限
-k 删除默认ACL权限
-R 递归设定ACL权限