[linux学习笔记] 权限管理:ACL权限




一、ACL权限简介与开启

1、ACL权限简介

2、查看分区ACL权限是否开启

dumpe2fs -h /dev/sda3:dumpe2fs命令是差指定分区详细文件系统信息的命令;

-h 仅显示超级快中信息,而不显示磁盘块组的详细信息;

3、临时开启分区ACL权限

mount -o remount,acl/  :重新挂载跟分区,并挂载加入ACL权限;

4、永久开启分区ACL权限

vim /etc/fstab :在跟分区的default后加“,acl”,然后“mount -o remount/”重新挂载文件系统或者重新启动系统,使修改生效;

二、查看与设定ACL权限

1、查看ACL命令

getfacle 文件名:查看ACL权限;

2、设定ACL权限的命令

setfacl 选项 文件名;

选项:

-m:设定ACL权限;

-x:删除指定的ACL权限;

-b:删除所有的ACL权限;

-d:设定默认ACL权限;

-k:删除默认ACL权限;

-R:递归设定ACL权限;

3、给用户设定ACL权限;

useradd zhangsan        #添加用户张三

useradd lisi        #添加用户李四

useradd st        #添加用户st

groupadd tgroup        #添加用户组tgroup

gpasswd -a zhangsan tgroup        #将用户张三添加到用户组tgroup中

gpasswd -a lisi tgroup        #将用户李四添加到用户组tgroup中

mkdir /project        #创建目录project

chown root:tgroup /project/        #将目录project所有组变更为root

chmod 770 /project/        #将目录project权限变为770

setfacl -m u:st:rx /project/        #给用户st赋予r-x权限,使用“u:用户名:权限”格式

4、给用户组设定ACL权限

groupadd tgroup

setfacl -m g:tgroup2:rwx /project/

三、最大有效权限与删除ACL权限

1、最大有效权限mask

mask是用户指定最大有效权限,如果我给用户赋予了ACL权限,是需要和mask的权限“相与”才能得到用户的真正权限

修改最大有效权限:setfacl -m m:rx 文件名,设定mask权限为r-x。(不会影响所有者和所有组的权限,只会影响acl权限)

2、删除ACL权限

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

setfacl -x g:组名 文件名        #删除指定用户组的ACL权限

setfacl -b 文件名       #删除文件的所有的ACL权限

四、默认ACL权限和递归ACL权限

1、递归ACL权限

递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限

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

2、默认ACL权限

默认ACL权限的作用是如果给父目录设定了默认ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限;

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

标签: none