0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈Linux权限管理的ACL权限

马哥Linux运维 来源:未知 作者:工程师曾玲 2018-08-18 11:13 次阅读

Linux权限管理是Linux很重要的一项内容,重则引起用户信息泄露,轻则导致文件错乱和丢失。企业服务器里有些目录下面的东西暂时保密,不希望别人可以进入目录并查看。有些文件希望别人可以看,但不能删除。有些目录只有root等管理员权限的账户才能修改,

Linux服务器供多个人登录使用,要是没有权限管理就乱了,大家都一样的权限。有些维护系统的命令比较复杂,经验丰富的管理员运行这些命令没事,普通新用户运行的话,可以会导致linux服务器瘫痪。

就像咱们日常生活中,全世界人的权限都一样不就乱了吗。

今天我们来介绍一下Linux权限管理的ACL权限,它是用户管理结束之后必须要经历的一步。Linux系统的用户管理包括Linux用户和用户组管理之相关配置文件,用户管理的相关配置文件,内容有用户信息文件/etc/passwd,用户密码文件/etc/shadow;用户组信息文件/etc/group,用户组密码文件/etc/gshadow。用户的家目录,以及用户的模板目录;Linux用户和用户组管理之用户管理命令,管理用户和用户组的命令,包括新建、修改、查看等等以及用的比较多的切换用户命令 su。

下面我们正式开始介绍:

1、什么是 ACL 权限?

比如有如下场景:

某大牛在QQ群内直播讲解Linux系统的权限管理,讲解完之后,他在一个公有的Linux系统中创建了一个 /project 目录,里面存放的是课后参考资料。那么 /project 目录对于大牛而言是所有者,拥有读写可执行(rwx)权限,对于QQ群内的所有用户他们都分配的一个所属组里面,也都拥有读写可执行(rwx)权限,而对于 QQ 群外的其他人,那么我们不给他访问/project 目录的任何权限,那么 /project 目录的所有者和所属组权限都是(rwx),其他人权限无。

问题来了,这时候直播有旁听的人参与(不属于QQ群内),听完之后,我们允许他访问/project目录查看参考资料,但是不能进行修改,也就是拥有(r-x)的权限,这时候我们该怎么办呢?我们知道一个文件只能有一个所属组,我们将他分配到QQ群所在的所属组内,那么他拥有了写的权限,这是不被允许的;如果将这个旁听的人视为目录/project 的其他人,并且将/project目录的其他人权限改为(r-x),那么不是旁听的人也能访问我们/project目录了,这显然也是不被允许的。怎么解决呢?

我们想想windows系统里面给某个文件分配权限的办法:

如上图,我们想要让某个用户不具备某个权限,直接不给他分配这个目录的相应权限就行了。那么对应到Linux系统也是这样,我们给指定的用户指定目录分配指定的权限,也就是 ACL 权限分配。

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

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

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

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

下面是查看 根分区/ 的详细文件信息

3、开启分区 ACL 权限

①、临时开启分区 ACL 权限

mount -o remount,acl /

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

②、永久开启分区 ACL 权限

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

上面是修改根分区拥有 acl 权限

UUID=490ed737-f8cf-46a6-ac4b-b7735b79fc63 / ext4 defaults,acl 1 1

二、重新挂载文件系统或重启系统,使得修改生效

mount -o remount /

4、设定 ACL 权限:setfacl 选项 文件名

①、给用户设定 ACL 权限:setfacl -m u:用户名:权限 指定文件名

②、给用户组设定 ACL 权限:setfacl -m g:组名:权限 指定文件名

注意:我们给用户或用户组设定 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、查看 ACL 权限:getfacl 文件名

6、最大有效权限 mask

前面第4点我们讲过,我们给用户或用户组设定 ACL 权限其实并不是真正我们设定的权限,是与 mask 的权限“相与”之后的权限才是用户的真正权限,一般默认mask权限都是rwx,与我们所设定的权限相与就是我们设定的权限。

我们通过getfacl 文件名 也能查看 mask 的权限,那么我们怎么设置呢?

setfacl -m m:权限 文件名

7、删除 ACL 权限

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

setfacl -x u:用户名 文件名

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

setfacl -x g:组名 文件名

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

setfacl -b 文件名

8、递归 ACL 权限

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

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

9、默认 ACL 权限

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

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

10、总结

本篇博客我们介绍了权限管理的ACL权限,通过设定 ACL 权限,我们为某个用户指定某个文件的特定权限,在实际权限管理中还是用的比较多的

↓↓↓

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11302

    浏览量

    209431
  • ACL
    ACL
    +关注

    关注

    0

    文章

    61

    浏览量

    11979

原文标题:Linux权限管理之ACL权限最全解读

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    鸿蒙原生应用元服务-访问控制(权限)开发应用权限列表一

    ACL使能 :TRUE ohos.permission.DOWNLOAD_SESSION_MANAGER 允许应用管理下载任务会话。 权限级别 :system_core 授权方式
    发表于 04-23 14:33

    鸿蒙原生应用元服务-访问控制(权限)开发应用权限列表二

    允许应用程序获取当前设备正在播放的媒体资源,并对其进行管理权限级别 :system_basic 授权方式 :system_grant ACL使能 :TRUE
    发表于 04-24 15:43

    鸿蒙原生应用元服务-访问控制(权限)开发应用权限列表三

    ohos.permission.ACCESS_DLP_FILE 允许对DLP文件进行权限配置和管理权限级别 :system_core 授权方式 :system_grant ACL
    发表于 04-25 16:12

    linux的三种权限管理

    2018-07-30 linux 权限管理及其他命令
    发表于 05-10 10:09

    Linux 中文件权限管理的探讨

    Linux 是一种多用户的操作系统,其文件权限管理在文件管理中占有重要的地位。为了更好地把握Linux 的文件
    发表于 06-11 09:37 11次下载

    基于ACL权限系统实现

    ACL全称Access Control List,在ACL中,包含用户(User)、资源(Resource)、资源操作(Operation)三个关键要素。通过将资源以及资源操作授权给用户而使用户获取对资源进行操作的权限,模型如下
    发表于 05-16 15:49 0次下载
    基于<b class='flag-5'>ACL</b>的<b class='flag-5'>权限</b>系统实现

    Windows下linux权限管理问题解析

    在Windows下,可以通过鼠标右击文件,在属性栏查看文件的权限Linux下的文件“哲学”是否与Windows相同呢?我们从以下几点分析。
    的头像 发表于 06-27 17:24 6787次阅读
    Windows下<b class='flag-5'>linux</b><b class='flag-5'>权限</b><b class='flag-5'>管理</b>问题解析

    Linux ACL权限详细分析

    ACL的全称是 Access Control List (访问控制列表) ,一个针对文件/目录的访问控制列表。它在UGO权限管理的基础上为文件系统提供一个额外的、更灵活的权限
    的头像 发表于 10-22 10:00 4629次阅读

    Linux进程权限的分析说明

     在linux下,关于文件权限,大部分人接触比较多,也比较熟悉了解。但是对进程权限一般知之甚少。本文总结一下linux系统下进程权限问题和现
    发表于 07-17 10:55 874次阅读

    Linux基础的用户权限

    sudo是一种权限管理机制,其权限管理记录在/etc/sudoers文件中,约定普通用户可以以管理员的身份执行命令。
    的头像 发表于 02-15 11:08 745次阅读

    ACL、RBAC、ABAC三大权限管理模型,到底怎么选?

    ACL(访问控制列表)是率先登场的权限管理模型。它的概念很简单,每一个需要被访问控制机制保护的资源对象(称为客体)都维持一个独立的关联映射表,其中记录了对该客体进行访问的实体(称为主体)被授予访问客体的
    的头像 发表于 04-24 09:20 6893次阅读
    <b class='flag-5'>ACL</b>、RBAC、ABAC三大<b class='flag-5'>权限</b><b class='flag-5'>管理</b>模型,到底怎么选?

    linux文件访问权限怎么设置

    Linux 文件访问权限是操作系统中一个非常重要的概念。正确地设置文件访问权限可以保护系统的安全性,防止未经授权的人员对文件进行修改、删除或执行。本文将详细介绍 Linux 文件访问
    的头像 发表于 11-23 10:20 1506次阅读

    Linux把目录权限给指定用户

    Linux是一个开放源代码的操作系统,它基于Unix的设计原则,提供了丰富的权限管理功能,允许用户对系统中的文件和目录进行精确的控制。在Linux中,每个文件和目录都有相应的
    的头像 发表于 11-23 10:30 8273次阅读

    搞懂Linux权限管理,提升系统安全性与稳定性

    目录 权限管理 4.1 linux安全上下文 4.2 特殊权限 2.1 修改权限的命令chmod 2.2 修改文件属主和属组的命令chown
    的头像 发表于 11-22 10:31 143次阅读
    搞懂<b class='flag-5'>Linux</b><b class='flag-5'>权限</b><b class='flag-5'>管理</b>,提升系统安全性与稳定性

    linux权限管理详解

    权限:在计算机系统中,权限是指某个计算机用户具有使用软件资源的权利。
    的头像 发表于 12-25 09:43 62次阅读