假设有属于不同组的用户A和B。并且它们中的bot不是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的身份实际运行二进制文件时,我得到的是"permission denied“。那为什么呢?
发布于 2014-05-09 15:27:09
Linux没有实现对脚本文件的S_ISUID位的处理;相反,使用解释器(外壳)的模式位。
发布于 2012-12-11 17:28:09
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)https://stackoverflow.com/questions/13816624
复制相似问题