权限管理-高级权限

一. 高级权限管理ACL 

使用setfacl命令可以对每一个文件或者目录设置更精确的文件权限,比如:让某一个用户对某一文件具有某种权限.这种独立于u,g,o的rwx权限之外的具体权限设置叫ACL,它可以对单一用户,单一文件或者目录进行r,w,x的权限控制.

1.  getfacl /opt/a.txt   添加acl权限
getfacl: Removing leading '/' from absolute path names
# file: opt/a.txt
# owner: root
# group: root
user::rw-
group::r--
other::---

 

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进行按位与运算,两者同时具有某一权限时,真实权限才具备该权限,若有一方不具备该权限,则真实权限不具备此权限。

lili权限:r--
mask权限:rw-
lili๋最终权限: r--
 

 

ps:

1.我们一般不设置mask权限,它默认是最大权限(rwx),所有给某个具体用户或组设置的ACL权限本身就是有效的.如果要设置mask权限,需要先给具体用户或者组设置ACL权限,在设置mask,如果顺序相反,mask会恢复到默认最大权限(rwx).

2.设置了mask权限以后,文件的属组权限信息显示的是mask的权限(如图).

 

 

 

 

二. chattr设置特殊权限,这个命令只有root用户可以使用

+i:锁定文件,不能编辑,不能修改,不能删除,不能移动,可以执行 
 -i:解锁文件
+a:仅可以追加文件,不能编辑,不能删除,不能移动,可以执行
 -a: 解锁追加文件
-A: 不更改文件的访问时间

posted @ 2020-10-30 17:42  飞天遁地猪  阅读(261)  评论(0编辑  收藏  举报