gpt4 book ai didi

linux - 无法理解 setuid/setgid

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:26 24 4
gpt4 key购买 nike

我一直在努力思考 setuid/setgid 是如何工作的……我想到了这个人为的例子:

用户:

  • 用户A属于A组
  • 用户B属于B组

文件 a.txt 由用户 A 拥有,权限为 rw-rw----- (660)。我想如果 userA 创建了这个文件,test.sh:

#!/bin/sh
cat a.txt

并运行 chmod g+s test.shchmod u+s test.sh,在用户 B 执行时,它会 cat a.txt。相反,我得到 Permission Denied。需要明确的是,test.sh 的文件权限最终看起来像这样:rwsr-xr-xrwxr-sr-x。我认为 setuid/setgid 的全部意义在于,当其他用户执行文件时,他们会假定文件的用户 ID 或组 ID(在本例中为 test.sh)。是我做错了什么,还是我的理解有问题?

我一直在 RedHat 上运行我的测试以防万一。我也尝试过使用 umask,尝试在运行 umask 0002 之后运行 setuid/setgid。没有帮助...

最佳答案

警告:Setuid 和 setgid shell 脚本是一个安全漏洞。有很多方法可以使 setuid/setgid 执行您(作者)不希望做的事情。

一个常见的技巧是修改环境变量。例如,有人可以这样做:

ln -s cat /bin/rm
export PATH=.:${PATH}

然后使用您的 setuid 脚本删除 a.txt 文件。


幸运的是,对于许多现代 Linux 系统上的 shell 脚本,setuid 和 setgid 位被忽略;见https://unix.stackexchange.com/questions/364/allow-setuid-on-shell-scripts .一些答案给出了解决方法......

关于linux - 无法理解 setuid/setgid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28894243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com