权限管理-高级权限
一. 高级权限管理ACL
使用setfacl命令可以对每一个文件或者目录设置更精确的文件权限,比如:让某一个用户对某一文件具有某种权限.这种独立于u,g,o的rwx权限之外的具体权限设置叫ACL,它可以对单一用户,单一文件或者目录进行r,w,x的权限控制.
2.setfacl
修改属主的权限
setfacl -m u::权限 a.txt
修改属组的权限
setfacl -m g::权限 a.txt
修改其他人的权限
setfacl -m o::权限 a.txt
修改具体某一个用户的权限(不是属主,而是系统存在的其他用户中的某一用户)
setfacl -m u:用户名:权限 a.txt
修改具体某一个组的权限(不是文件的属组,而是系统存在的其他组中的某一个组)
setfacl -m g:组名:权限 a.txt
-x 清除某个用户或者组的权限
setfacl -x u:用户名 a.txt
setfacl -x g:组名 a.txt
-b 清除文件或者目录的所有acl权限
setfacl -b a.txt
-R 递归授权(注意是已经存在的目录和文件,如果在执行完该命令后,在该目录下新建的子目录或文件则不具备该用户的权限)
setfacl -m u:用户名:权限 -R /a/
3.default 继承
给某一目录设置了某一具体用户的继承权限,以后在该目录下新建的子目录和文件,该用户都有相应的权限.(注意:对于目录下的子目录权限可以完全继承,但对目录下的所有文件权限会受mask影响)
setfacl -m d:u:某一用户:rw /a
子目录可以完全继承oldboy01的权限如图:
oldboy01在该目录下的所有文件权限受mask影响(如图):
4. mask
文件所有者和other用户不受mask影响,其它某一具体用户或者组会与mask进行按位与运算,两者同时具有某一权限时,真实权限才具备该权限,若有一方不具备该权限,则真实权限不具备此权限。
![](https://img2020.cnblogs.com/blog/2125061/202010/2125061-20201030173410787-1544362013.png)
ps:
1.我们一般不设置mask权限,它默认是最大权限(rwx),所有给某个具体用户或组设置的ACL权限本身就是有效的.如果要设置mask权限,需要先给具体用户或者组设置ACL权限,在设置mask,如果顺序相反,mask会恢复到默认最大权限(rwx).
2.设置了mask权限以后,文件的属组权限信息显示的是mask的权限(如图).
二. chattr设置特殊权限,这个命令只有root用户可以使用
-A: 不更改文件的访问时间