linux权限管理_ACL权限

一、什么是ACL权限

ACL是Access Control List(访问控制列表)的缩写,主要的目的是在提供传统的owner,group,others的read,write,execute权限之外的局部权限设定。ACL可以针对单个用户,单个文件或目录来进行r,w,x的权限设定,特别适用于需要特殊权限的使用情况。

二、分区ACL权限开启方式

查看分区ACL权限是否开启:# dumpe2fs -h /dev/sdb2 

如果看到上面的信息,说明分区已经开启ACL权限。

挂在分区时,默认会开启ACL 权限

临时开启方式:# mount -o remount,acl /dev/sdb2

永久生效:# vim /etc/fstab

编辑完上面的文件后,重启或者# mount -o remount / 生效

三、设定ACL权限

# setfacl 选项 文件名

选项:

-m    设定ACL权限

-x    删除指定的ACL权限

-b    删除所有的ACL权限

-d    设定默认的ACL权限

-k    删除默认的ACL权限

-R    递归设定ACL权限

查看ACL权限:# getfacl 文件名

实例测试:

# mkdir /project 创建project目录

# useradd test1  创建用户test1

# useradd test2  创建用户test2

# groupadd testgroup  创建组testgroup

# gpasswd -a test1 testgroup   将test1添加到testgroup组

# gpasswd -a test2 testgroup   将test2添加到testgroup

# chown root:testgroup /project   将project的所属组改为testgroup

# chmod 770 /project/ 设置project目录的权限

# setfacl -m u:acl:rx /project/ 给acl用户设定读和执行权限

# getfacl project/ 查看project目录的ACL权限

# groupadd testgroup2 创建组testgroup2

# setfacl -m g:testgroup2:rwx /project/ 给testgroup2组设定对project目录的读写执行的权限

# getfacl project/  查看project目录的权限

四、ACL最大有效权限和删除

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

A

B

and

r

r

r

r

-

-

-

r

-

-

-

-

# setfacl -m m:rx /project/ 设置最大有效权限读和执行

删除ACL权限

# setfacl -x g:testgroup2 /project/ 删除testgroup2的ACL权限

# setfacl -b project/ 删除所有ACL权限

五、默认与递归ACL权限(只针对目录)

# setfacl -m u:acl:rwx -R project/ 递归设置project目录的ACL权限(递归对现有的文件生效)

# setfacl -m d:u:acl:rx /project/ 设置project目录的默认ACL权限(默认对未来的文件生效)

原文地址:https://www.cnblogs.com/fansik/p/5576664.html