1. ACL权限简介
给一个用户设定一个目录或文件的权限
2. 查看分区ACL权限是否开启
dumpe2fs -h /dev/sda3(这里使用df -h查看/分区挂载的分区)
3. 开启ACL权限
1)临时开启
[root@catyuan ~]# mount -o remount,acl / #重新挂载根分区,并挂载acl权限
2)永久开启
[root@catyuan ~]# vim /etc/fstab
UUID=31174a3f-49df-49a6-a641-cd202ba14336 / xfs defaults,acl 0 0 # /挂载那里加入acl
[root@catyuan ~]# mount -o remount / #重启生效
4. 查看与设定ACL权限命令
1)查看命令
getfacl 文件名
2)设定命令
setfacl 选项 文件名
选项
-m:设定ACL权限
-x:删除指定的ACL权限
-b:删除所有的ACL权限
-d:设定默认的ACL权限
-k:删除默认的ACL权限
-R:递归设定ACL权限
练习:-m
[root@catyuan ~]# useradd test
[root@catyuan ~]# mkdir /test
[root@catyuan ~]# ll /test -d
drwxr-xr-x. 2 root root 6 Jul 19 08:14 /test
[root@catyuan ~]# setfacl -m u:test:rwx /test/
[root@catyuan ~]# ll -d /test/
drwxrwxr-x+ 2 root root 6 Jul 19 08:14 /test/
[root@catyuan ~]# getfacl /test/
getfacl: Removing leading '/' from absolute path names
# file: test/
# owner: root
# group: root
user::rwx #文件拥有者权限
user:test:rwx #test用户权限
group::r-x #所属组权限
mask::rwx #最大有效权限
other::r-x #其他用户权限
5. 最大有效权限mask
mask用来指定最大的有效权限的。我们给用户赋予的ACL权限,需要与mask的权限相“与”才能得到用户真正的权限,
相与
a | b | a与b |
---|---|---|
n | n | n |
n | - | - |
- | n | - |
- | - | - |
6. 删除ACL权限
命令
setfaxl -x u:用户名 文件名 #删除指定用户的ACL权限
setfaxl -x g:用户名 文件名 #删除指定用户组的ACL权限
7. 递归ACL权限
递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限
仅能赋予目录,不能赋予文件
如果在赋予一个目录递归权限后,再去这个目录下创建一个文件,则不会有ACL权限
命令
setfacl -m u:用户名:权限 -R 目录名
8. 默认ACL权限
默认 acl权限的作用是如果给父目录设定了默认的ACL权限,那么其所有新建的子文件都会继承父目录的ACL权限
命令
setfacl -m d:u:用户名:权限 目录名