分享

linux的ACL权限管理

 庆亮trj21bcn0z 2017-11-18

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

ACL主要针对用户(user)、用户组(group)、以及掩码(mask)方面来控制权限。

简单地来说,ACL就是可以设置特定用户或用户组对于一个文件/目录的操作权限。

1. 查看分区ACL权限是否开启

[root@localhost ~]# df -h 查看分区使用状况

linux的ACL权限管理

查看分区使用状况

[root@localhost ~]# dumpe2fs -h /dev/sda3 查看分区表的详细信息

linux的ACL权限管理

查看分区表详细信息

由命令结果可见该分区是支持acl的,一般现在的linux系统默认都是支持acl的

1.1 如果不支持,可以修改 /etc/fstab文件,

# vim /etc/fstab

linux的ACL权限管理

在defaults后面添加acl可开启acl,修改后值为:defaults,acl

[root@localhost ~]# mount -o remount /

然后重新挂载文件系统或重新启动系统,使修改生效。

1.2 也可以使用mount命令临时开启分区ACL权限

[root@localhost ~]# mount -o remount ,acl /

#重新挂载根分区,并挂载加入ACL权限;

2. 设定及查看ACL权限的命令

# setfacl 选项 文件名

  • -m 设定ACL权限

  • -x 删除指定的ACL权限

  • -b 删除所有的ACL权限

  • -d 设定默认ACL权限

  • -k 删除默认ACL权限

  • -R 递归设定ACL权限

[root@localhost njh]# setfacl -m u:njh2:rx projects/

给用户njh2赋予r-x权限,使用“u:用户名:权限”格式

[root@localhost njh]# getfacl projects/ 查看权限

linux的ACL权限管理

查看ACL权限

3. 给用户组设定ACL权限

[root@localhost njh]# groupadd tgroup2

[root@localhost njh]# setfacl -m g:tgroup2:rwx projects/

添加一个新组tgroup2,然后为该组分配ACL权限,使用“g:组名:权限”的格式

再一次

查看ACL权限,发现新加的组已经有权限了:

[root@localhost njh]# getfacl projects/

# file: projects/

# owner: root

# group: root

user::rwx

user:njh2:r-x

group::r-x

group:tgroup2:rwx

mask::rwx

other::r-x

4. ACL最大有限权限mask

getfacl 命令可以查看文件或目录的ACL权限,其中有一行mask权限。

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

比如mask权限为 r-x,为一个用户新增rwx了权限,则新增的用户真实权限为:r-x

因为r&r=r,-&w=-,x&x=x

5. 删除ACL权限

# setfacl -x u:用户名 文件名

删除指定用户的ACL权限

# setfacl -x g:组名 文件名

删除指定用户组的ACL权限

# setfacl -b 文件名

删除文件的所有的ACL权限

6. 默认ACL权限和递归ACL权限

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

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

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

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多