首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解setuid/setgid困难

理解setuid/setgid困难
EN

Stack Overflow用户
提问于 2015-03-06 07:47:12
回答 1查看 825关注 0票数 1

我一直在想我是怎么工作的.我想出了一个人为的例子:

用户:

  • userA属于A组
  • userB属于B组

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

代码语言:javascript
复制
#!/bin/sh
cat a.txt

并运行chmod g+s test.shchmod u+s test.sh,在userB执行时,它会对a.txt进行猫操作。相反,我得到了Permission Denied。为了明确起见,test.sh的文件权限最终看起来是这样的:rwsr-xr-xrwxr-sr-x。我认为setuid/setgid的全部要点是,当其他用户执行该文件时,他们将假定文件的用户id或组id (本例中为test.sh)。是我做错什么了,还是我的理解错了?

我一直在RedHat上运行我的测试,以防这件事发生。我还尝试使用umask,在运行umask 0002之后尝试运行setuid/setgid。帮不上忙..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-06 08:01:10

警告: Setuid和setgid脚本是一个安全漏洞。对于一个人来说,有很多方法可以让你(作者)做你不想做的事情。

一个常见的技巧是对环境变量进行猴子操作。例如,有人可以这样做:

代码语言:javascript
复制
ln -s cat /bin/rm
export PATH=.:${PATH}

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

幸运的是,在许多现代Linux系统上,setuid和setgid位都是忽略的脚本;参见https://unix.stackexchange.com/questions/364/allow-setuid-on-shell-scripts。一些答案提供了解决办法..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28894243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档