我正在尝试编写一个shell脚本来挂载循环设备,我正在为这个脚本分配一个粘滞位来执行uid(root)。(这是针对服务器上的其他用户)问题是我不能似乎在不使用sudo的情况下运行'mount'命令。当我在root帐户时,我可以毫无问题地运行'mount'命令,所以我想通过设置rws-r_x-r_x
脚本就可以了。
我是否误解了使用粘性位的概念?或者还有其他方式吗?
服务器在Ubuntu 10.04下运行
答案 0 :(得分:3)
您的意思是setuid
位,而不是sticky
位。内核不遵守脚本上的setuid位。 See this post for a thorough description,这是一个总结:要点是脚本上的suid是不安全的。*内核开始阅读脚本来执行它,但它看到了#!/path/to/interpreter
并且发现它需要被解释。然后它直接取消“执行”脚本并调用指定的解释器,将脚本名称作为第一个参数传递(以及之后的所有后续参数)。在这种情况下设置UID不安全的原因是攻击者可能会更改在设置新UID的内核和读取文件的解释器之间执行的脚本。
*:另一篇文章提到perl
处理其脚本的方式可能会被欺骗。
至于实际的安装问题,请在/etc/fstab/
添加一行,并添加user
选项。