setuid没有生效

时间:2012-12-11 08:51:29

标签: linux setuid

让我们说有用户A和B,属于不同的组。和他们的机器人不是root

首先,作为用户A。

1) touch a.txt; echo "hello word" > a.txt
2)chmod 600
3) touch b
4) echo "cat a.txt" > b
5) chmod 4755 b

然后切换到用户B,我的假设是用户B可以成功运行二进制文件并获得问候语“hello word”,但是当我实际运行二进制文件作为用户B时,我得到了“权限被拒绝”。所以为什么?

2 个答案:

答案 0 :(得分:1)

Linux没有实现对S_ISUID位脚本文件的处理;相反,使用解释器(shell)的模式位。

答案 1 :(得分:0)

setuid文件的概念意味着如果您在文件上启用setuid bit,则执行该命令(文件)的任何人都将继承该文件所有者的权限。

$ chmod 4755 b --verbose
mode of `b' changed to 4755 (rwsr-xr-x)

我怀疑用户A和B属于单独的组,因此您还需要setgid。这可以通过添加2来完成,对于setuid和setgid add都可以获得6。

$ chmod 6755 b --verbose
mode of `b' changed to 6755 (rwsr-sr-x)