linux特殊的文件权限之ACL权限

1、ACL权限简介

按之前学习的linux基本权限的知识,linux中的一个文件(或文件夹)有三个用户身份,所有者,所属组,其他人等。在上图,如果给一个文件夹/av设定所有者Tony为:rwx权限,所属组stu为:rwx权限,其他人为无权限,但现在想给老王设置权限:r-x权限,而且不去改变现有的文件夹的基本权限设定,那么该怎么办呢?这就需要用到ACL权限的知识。

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

我们看某个文件(Linux系统中目录也是文件,一切皆是文件)是否支持 ACL 权限,首先要看文件所在的分区是否支持 ACL 权限。

①、查看当前系统有哪些分区:df -h

②、查看指定分区详细文件信息:dumpe2fs -h 分区路径

3、开启分区ACL权限

①、临时开启分区 ACL 权限

mount -o remount,acl 分区名称

如mount -o remount,acl /

重新挂载根分区,并挂载加入 acl 权限。注意这种命令开启方式,如果系统重启了,那么根分区权限会恢复到初始状态。

②、永久开启分区 ACL 权限

一、修改配置文件 /etc/fstab

二、重新挂载文件系统或重启系统,使得修改生效(但要小心,/etc/fstab千万别写错了,否则重新挂载可能会使系统崩溃)

mount -o remount /

4、ACL权限查看与设定

①、查看ACL命令

getfacl 文件名
# 查看ACL权限

②、设定ACL权限

setfacl 选项 文件名

给用户设定ACL权限:    setfacl -m u:用户名:权限 指定文件名
给用户组设定ACL权限:   setfacl -m g:组名:权限 指定文件名
选项说明
-m设定ACL权限
-x删除指定的ACL权限
-b删除所有的ACL权限
-d设定默认ACL权限
-k

删除默认ACL权限

-R递归设定ACL权限

注意:我们给用户或用户组设定 ACL 权限其实并不是真正我们设定的权限,是与 mask 的权限“相与”之后的权限才是用户的真正权限,一般默认mask权限都是rwx,与我们所设定的权限相与就是我们设定的权限。mask 权限下面我们会详细讲解。

范例:

所有者root用户在根目录下创建一个文件目录/project,然后创建一个QQ群所属组,所属组里面创建两个用户zhangsan和lisi。所有者和所属组权限和其他人权限是770。然后创建一个旁听用户 pt,给他设定/project目录的 ACL 为 r-x。

目录 /project 的所有者和所属组其他人权限设定为 770。接下来我们创建旁听用户 pt,并赋予 acl 权限 rx

为了验证 pt 用户对于 /project 目录没有写权限,我们用 su 命令切换到 pt 用户,然后进入 /project 目录,在此目录下创建文件,看是否能成功:

上面提示权限不够,说明 acl 权限赋予成功,注意如下所示,如果某个目录或文件下有 + 标志,说明其具有 acl 权限。

5、最大有效权限mask及删除acl权限

前面第4点我们讲过,我们给用户或用户组设定 ACL 权限其实并不是真正我们设定的权限,是与 mask 的权限“相与”之后的权限才是用户的真正权限,一般默认mask权限都是rwx,与我们所设定的权限相与就是我们设定的权限。有时我们对于某个文件不想让别人设定写(w)的acl权限,这时就可以改变mask的值为:rx即(r-x)即可。那么我们怎么设置呢?

setfacl -m m:权限 文件名

6、删除 ACL 权限

①、删除指定用户的 ACL 权限

setfacl -x u:用户名 文件名

②、删除指定用户组的 ACL 权限

setfacl -x g:组名 文件名

③、删除文件的所有 ACL 权限

setfacl -b 文件名

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

①、通过加上选项 -R 递归设定文件的 ACL 权限,所有的子目录和子文件也会拥有相同的 ACL 权限。

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

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

setfacl -m d:u:用户名:权限 文件名        # d是default的意思

参考链接:

Linux系列教程(十六)——Linux权限管理之ACL权限

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值