Linux之又爱又恨的SetUID权限详解

>>>Linux教程目录<<<

权限管理-2.1SetUID

写在前面:自己写完检查可能会有所纰漏,读者们如若发现哪里有错误,可在下方留言或私信我,我会第一时间改正

1. SetUID的功能

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

2. 示例

  • passwd 命令拥有 SetUID 权限,所以普通用户可以更改自己的密码
    • 我们通过 ll(ls -l 的缩写)命令查看 passwd 命令文件
    • ll /usr/bin/passwd
    • 显示如下:
    • -rwsr-xr-x 1 root root 25980 4月 21 2020 /usr/bin/passwd
    • 可以看出所属组的权限中有一个“s”,这即代表拥有SetUID权限
  • 而 cat 命令没有 SetUID权限,所以普通用户不能通过 cat 查看 /etc/shadow 文件的内容
    • 我们查看 cat 命令文件
    • 显示如下:
    • -rwxr-xr-x 1 root root 47976 4月 21 2020 /bin/cat
    • 可以看出没有权限“s”,这即代表不拥有SetUID权限

在这里插入图片描述

3. 设定SetUID的方法

  • chmod 4755 [文件名]
  • 或 chmod u+s [文件名]
  • 数字 4 即代表了SUID 权限

4. 取消SetUID的方法

  • chmod 755 [文件名]
  • 或 chmod u-s [文件名]

5. 危险的SetUID

  • 关键目录应严格控制写权限,比如“/”,“/usr”等
  • 用户的密码设置要严格遵守密码的三原则
  • 对系统中默认应该具有 SetUID 权限的文件作以列表,定时检查有没有这之外的文件被设置了 SUID 权限
  • 注:如果 vim 有了 SUID 权限,那么普通用户将可以使用 vim 修改任何文件

写在后面:希望这些讲解对你有所帮助,希望大家多多点赞和关注,你们的支持是我最大的动力(๑>؂<๑)

发布了366 篇原创文章 · 获赞 68 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_43479432/article/details/105635730
今日推荐