Linux权限管理1——ACL权限

时间:2021-09-24 16:44:57

 Linux权限管理——ACL权限

我们已经知道Linux的文件有所有者,所属组,其他人三种权限,但这是远远不够的,比如说,有一个project,项目管理员将所有项目人员添加到该项目的所属组中,分配权限770,有一天,临时来了一个成员,该成员需要先进行学习,然后才能工作,这时我们需要对该成员对project分配读和可执行的权限,不能将其他*限设为5,文件只有一个所属组,所以对project分配两个所属组的方式不成立,显然此时的权限管理方式无法满足要求,这时候就用到ACL权限了,所谓的acl权限,可以简单的理解为为某一用户或某一组分配不属于所有,所属组,其他人的额外权限。

Linux权限管理1——ACL权限

1)

acl权限是对文件系统的管理,但它需要文件所在的分区支持acl权限

#查看文件所在分区

Linux权限管理1——ACL权限

dumpe2fs -h 分区

若分区不支持acl权限:

#临时使分区支持acl权限,重新挂载分区支持acl权限 

mount -o remount,acl 分区

#永久生效,修改配置文件,重启或重新挂载

vi /etc/fstab

Linux权限管理1——ACL权限

mount -o remount /

注意:/etc/fstab文件是系统启动时自动检测挂载分区的识别文件,如果想让系统启动时自动挂载某一分区,可手动添加,注意添加格式

 

 

2) 

#设定acl权限

#setfacl 选项 文件名

#-m 设定acl权限

setfacl -m  u:用户名:权限  文件

setfacl -m  g:组名:权限  文件

#查看acl权限

getfacle 文件名

Linux权限管理1——ACL权限


Linux权限管理1——ACL权限


Linux权限管理1——ACL权限


Linux权限管理1——ACL权限


Linux权限管理1——ACL权限

#删除acl权限

setfacl -b 文件名 删除该文件下的所有acl权限

setfacl -x u:用户名 文件名 删除指定用户的acl权限

setfacl -x g:组名 文件名 删除指定组的acl权限

Linux权限管理1——ACL权限

3

getfacl中我们看到有个mask类权限,称之为最大有效权限,就是说我们在给文件赋予acl权限时,最终得到的是赋予的权限与mask权限的“与运算”结果

我们可以修改mask的权限

修改mask

setfacl -m m:权限 文件名

通过对mask权限的设置,可以避免权限赋予过大的问题

4

递归acl权限和默认acl权限

递归针对已经存在的文件

该目录下所有的文件都具有与目录相同的acl权限(注意-R位置)

setfacl -m u:用户名:权限 -R 目录

setfacl -m g:组名:权限 -R 目录

默认针对新添加的文件

该目录下新添加的文件都具有与目录相同的acl权限

setfacl -m d:u:用户名:权限 目录

setfacl -m d:g:组名:权限 目录