bilibili_Linux8_权限管理

本文详细介绍了Linux中的ACL权限管理,包括如何开启、查看和设置ACL,以及最大有效权限和删除权限的方法。同时讲解了文件的特殊权限SetUID、SetGID和StickyBIT,阐述了它们的作用和设定方式。此外,还提到了文件系统属性chattr的使用以及sudo命令的权限管理,确保系统安全性和权限控制的有效性。
摘要由CSDN通过智能技术生成

第八章 权限管理

第一节 ACL权限

第一讲 ACL权限简介与开启

ACL权限是为了解决所有者,所属组,其他人三个权限用户身份分配不足的问题

  • dumpe2fs -h [分区]
    dumpe2fs命令是查询指定分区详细文件系统信息的命令
  • -h :仅显示超级块中信息,而不显示磁盘块组的详细信息

临时开启分区ACL权限
mount -o remount,acl / 重新挂载根分区,并挂载加入acl权限
永久开启分区ACL权限
vim /etc/fstab
显示:UUID=59d9ca7b-4f39-4c0c-9334-c56c182076b5 / ext4 defaults 1 1
在ext4后面的 defaults加,acl 成为
UUID=59d9ca7b-4f39-4c0c-9334-c56c182076b5 / ext4 defaults,acl 1 1

然后输入:mount -o remount /
重新挂载文件系统或重启系统,使修改生效
Linux现在一般所有分区全部默认开启ACL,不用修改配置

第二讲 ACL权限查看与设定

  • getfacl 文件名 查看ACL命令 查看ACL权限
  • setfacl [选项] 文件名
    • -m:设定ACL权限
      例子:

      • setfacl -m u:st:rx /tmp/project 给用户设定ACL权限读和操作
      • setfacl -m g:tg1:rwx /tmp/project 给用户组设定ACL权限读,写和操作
    • -x:删除指定的ACL权限

    • -b:删除所有的ACL权限

    • -d:设定默认的ACL权限

    • -k:删除默认ACL权限

    • -R:递归设定ACL权限

第三讲 ACL权限最大有效权限与删除

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

  • setfscl -m m:rx 文件名
    设定mask权限为r-x。使用“m:权限”格式
    为了防止用户或者用户组给的权限过高,提前设定

权限的删除

  • setfacl -x u:用户名 文件名 删除指定用户的ACL权限
  • setfacl -x g:组名 文件名 删除指定用户组的ACL权限
  • setfacl -b 文件名 会删除文件的所有ACL权限

第四讲 ACL权限默认与递归

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

  • setfacl -m u:用户名:权限 -R 目录名 -R必须在这个位置

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

  • Setfacl -m d:u:用户名:权限 目录名 可以在权限后面加-R来进行递归

第二节 文件特殊权限

第一讲 SetUID

  • 只有可以执行的二进制程序才能设定SUID权限,普通文件或者目录没有意义
  • 命令执行者要对该程序拥有x(执行)权限
  • 命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

例子:
passwd命令拥有SetUID权限,所以普通用户可以修改自己的密码

  • 设定SetUID的方法
    • chmod 4755 文件名 4代表SUID权限
    • chmod u+s 文件名
  • 取消SetUID的方法
    • chmod 755 文件名
    • chmod u-s 文件名

如果用户对文件没有执行权限,就会报错,此时给他加特殊权限,就会显示大S
危险的SetUID
关键目录应当严格控制写权限。比如:“/”,“/usr”等
用户的密码设置要严格遵守密码三原则
对系统中默认应该具有SetUID权限的文件作一列表,定时检查有没有这之外的文件被设置了SetUID权限

第二讲 SetGID

SetGID针对文件

  • 只有可以执行的二进制程序才能设定SGID权限
  • 命令执行者要对该程序拥有x(执行)权限
  • 命令执行在执行程序的时候,组身份升级为该程序文件的所属组SetGID权限同只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效

例子:
locate 命令拥有SetGID权限,所以普通用户可以使用locate来查询

  • 设定SetUID的方法
    • chmod 2755 文件名 2代表SGID权限
    • chmod g+s 文件名
  • 取消SetUID的方法
    • chmod 755 文件名
    • chmod g-s 文件名

SetGID针对目录
普通用户必须对此目录拥有r和x权限,才能进入此目录
普通用户在此目录中的有效组会变成此目录的所属组
若普通用户对此目录拥有w权限时,新建的文件的默认所属组是这个目录的所属组

第三讲 Sticky BIT

SBIT粘着位作用

  • 粘着位目前只对目录有效

  • 普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限

  • 如果没有粘着位,因为普通用户拥有w权限,使用可以删除此目录下所有文件,包括其他用户建立的文件。一旦赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有了w权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件

  • 设定粘着位的方法

    • chmod 1755 目录名 1代表粘着位
    • chmod o+t 目录名
  • 取消粘着位的方法

    • chmod 755 目录名
    • chmod o-t 目录名

第三节 文件系统属性chattr权限

chattr命令格式

  • chattr [+ - =] [选项] 文件名或者目录名
    • +:增加权限
    • -:删除权限
    • =:等于某权限
    • i:如果对文件设置i属性,那么不允许对文件进行删除,改名,也不能添加和修改数据;如果对目录设置i属性,那么只能修改目录下文件的数据,但是不允许建立和删除文件
    • a:如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除或者修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除文件

查看文件系统属性

  • lsattr [选项] 文件名
    • -a:显示所有文件和目录
    • -d:若目标是目录,仅列出目录本身的属性,而不是子文件的

第三节 系统命令sudo权限

sudo权限

  • root把本来只能超级用户执行的命令赋予普通用户执行
  • sudo的操作对象是系统命令

sudo使用

  • visudo 实际修改的是/etc/sudoers文件
    • root ALL=(ALL) ALL
      用户名 被管理主机的地址=(可使用身份) 授权命令(绝对路径)
    • %wheel ALL=(ALL) ALL
      %组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
      被管理主机的地址:本机IP或者ALL,限制的不是来源IP,而是访问IP

例子:
授权用户可以可以重启服务器
visudo
yangyang ALL= /sbin/shutdown –r now

sudo -l 查看可用的sudo命令
sudo [授权命令的绝对路径] 普通用户执行sudo赋予的命令
例子:
sudo /sbin/shutdown -r now

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值