当前位置:   article > 正文

ACL权限及特殊权限配置(SUID,SGID,Sticky Bit)_acl effective

acl effective

R、W、X权限对于目录及文件相关权限说明

对于目录而言

R可使用ls命令获取其下所有文件列表
W可修改此目录下的文件,即删除和添加文件
X可以使用cd命令进入此目录

对于文件而言

R可以获取文件的内容,可以用cat等命令查看文件内容
W可以编辑文件内容,可以使用vim等命令对其编辑
X可将此文件运行为进程

删除文件:先查看用户对其目录有无W权限

  1. 先判断自己是以什么身份删除文件,按照U>G>O的顺序进行匹配。
  2. 若是以属主的身份访问只需匹配目录左三位权限有无W权限,若有删除成功,无则失败。
  3. 若是以属组的身份访问只需匹配目录中三位权限有无W权限,若有删除成功,无则失败。
  4. 若是以其他人的身份访问只需匹配目录中三位权限有无W权限,若有删除成功,无则失败。

进程安全上下文

进程安全上下文

进程安全上下文:
进程对文件的访问权限应用模型:
进程的属主与文件的属主是否相同;如果相同,则应用属主权限;
否则,则检查进程的属主是否属于文件的属组;如果是,则应用属组权限;
否则,就只能应用other的权限;总的来看进程对文件的权限受限于文件的本身的权限(ugo)
  • 1
  • 2
  • 3
  • 4
  • 5

ACL权限

什么是ACL权限?

比如有如下场景:
  某大牛在QQ群内直播讲解Linux系统的权限管理,讲解完之后,他在一个公有的Linux系统中创建了一个 /project 目录,里面存放的是课后参考资料。那么 /project 目录对于大牛而言是所有者,拥有读写可执行(rwx)权限,对于QQ群内的所有用户他们都分配的一个所属组里面,也都拥有读写可执行(rwx)权限,而对于 QQ 群外的其他人,那么我们不给他访问/project 目录的任何权限,那么 /project 目录的所有者和所属组权限都是(rwx),其他人权限无。
  问题来了,这时候直播有旁听的人参与(不属于QQ群内),听完之后,我们允许他访问/project目录查看参考资料,但是不能进行修改,也就是拥有(r-x)的权限,这时候我们该怎么办呢?我们知道一个文件只能有一个所属组,我们将他分配到QQ群所在的所属组内,那么他拥有了写的权限,这是不被允许的;如果将这个旁听的人视为目录/project 的其他人,并且将/project目录的其他人权限改为(r-x),那么不是旁听的人也能访问我们/project目录了,这显然也是不被允许的。怎么解决呢?

在这里插入图片描述
我们给指定的用户指定目录分配指定的权限,也就是 ACL 权限分配。

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

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

  1. 查看当前系统有哪些分区:df -h
    在这里插入图片描述
  2. 查看是否支持ACL权限
    在这里插入图片描述

开启ACL权限

临时开启分区 ACL 权限

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

永久开启分区 ACL 权限

修改配置文件 /etc/fstab
在这里插入图片描述

ACL权限的设置(setfacl)

在这里插入图片描述

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

给目录赋予acl权限
在这里插入图片描述
给文件赋予acl权限
在这里插入图片描述

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

在这里插入图片描述

给目录设置默认权限(只能为目录设置默认权限)

在这里插入图片描述
递归设置默认权限后,之后在此目录创建的文件都将遵循设置的默认权限。

设置mask权限

在这里插入图片描述
ACL 权限的最后一道防线就是 mask 。它决定了一个用户或组能够得到的最大的权限。上图中的 #effective 显示了对应行的实际权限。
为什么需要 effective 权限?
ACL_MASK 条目 限制的是 ACL_USER、ACL_GROUP_OBJ 和 ACL_GROUP 条目的最大权限,所以在应用了 ACL_MASK 条目后,需要通过 effective 权限来获得 ACL_USER、ACL_GROUP_OBJ 和 ACL_GROUP 条目的真正权限(如上图所示)。当 ACL_USER、ACL_GROUP_OBJ 和 ACL_GROUP 条目包含不包含在 ACL_MASK 条目中的权限,则该条目后面会有一个 “#” 号和字符串 “effective”,以及该条目的有效访问权限。
但是 mask 只对 ACL_USER、ACL_GROUP_OBJ 和 ACL_GROUP 条目有影响(红框中的内容),对 owner 和 other 的权限是没有任何影响的。

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

ACL权限的数据备份和恢复

acl权限数据备份

在这里插入图片描述

acl权限数据恢复

setfacl --restore test.acl
  • 1

SUID,SGID,Sticky Bit

在这里插入图片描述

SUID

SUID 权限仅对二进制程序(binary program)有效;
  运行者对于该程序需要具有 x 的可运行权限;
  本权限仅在运行该程序的过程中有效 (run-time);
  运行者将具有该程序拥有者 (owner) 的权限。
密码文件/etc/shadow只有root用户拥有修改权限,那其他用户是如何修改自身密码的呢,那就是由于命令passwd拥有SUID权限
  a、vbird 对於 /usr/bin/passwd 这个程序来说是具有 x 权限的,表示 vbird 能运行 passwd;
  b、passwd 的拥有者是 root 这个帐号;
  c、vbird 运行 passwd 的过程中,会『暂时』获得 root 的权限;
  d、/etc/shadow 就可以被 vbird 所运行的 passwd 所修改。
但如果 vbird 使用 cat 去读取 /etc/shadow 时,他能够读取吗?因为 cat 不具有 SUID 的权限,所以 vbird 运行 『cat /etc/shadow』 时,是不能读取 /etc/shadow 的。
展示位置:属主的执行权限位,如果属主原本有执行权限,显示为s;否则显示为S。

SGID

  1. 针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。(比如给一个文件路径设置了特殊权限为 ,假设这个路径数组为hr,那么user1在此目录下创建的文件数组将不是user1组,而是hr组)
  2. 所有用户都可以读写这个路径,相当于共享路径
  3. SGID主要作用于目录上。
    展示位置:属组的执行权限位,如果属主原本有执行权限,显示为s;否则显示为S。

SBIT

粘滞位,在目录创建了此权限,除了root用户,其他用户只能对自己的文件进行删除、移动操作。仅有自己和 root 才有权力删除。
代表文件/tmp目录。
展示位置:属主的执行权限位,如果属主原本有执行权限,显示为t;否则显示为T。

SUID,SGID,Sticky Bit 权限设置

#以符号进行赋权
#SUID赋权
chmod u+s filename
#SGID赋权
chmod g+s filename/dirname
#SBIT赋权
chmod o+t filename
#以数字进行赋权
SUID SGID SBIT
 4    2    1
#举例
chmod 1777 filename 等效与chmod o+t filename
chmod 7777 filename 等效于同时为赋权SUID、SGID、SBIT权限
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/191996
推荐阅读
相关标签
  

闽ICP备14008679号