鉴于dangers of SUID shell scripts,是否有更安全的方式在Linux中使用root权限对脚本(bash,PHP)进行无密码访问?
(Ubuntu 8.10)
答案 0 :(得分:15)
答案 1 :(得分:13)
您可以考虑sudo。
虽然不是'无密码',但它不需要为用户提供root密码。它还可以提供脚本使用的审计跟踪。
编辑:根据Chris的评论,某些命令根本不需要密码,有关详细信息,请参阅here。它也可以设置为不过度提示密码,即一次输入密码可以在一段时间内用于多个命令。
顺便说一下,sudo内置于Ubuntu并与Gnome很好地集成。当ubuntu提示您输入密码以进行特权操作时,那就是sudo。
答案 2 :(得分:6)
如果你去sudo路线,请务必查看sudoers手册页的“PREVENTING SHELL ESCAPES”部分。
答案 3 :(得分:5)
我会推荐sudo。务必妥善收紧sudoers
文件;是的,你可以允许执行一些命令而不要求密码。
答案 4 :(得分:4)
从安全的角度来看,配置sudo让普通用户以提升的权限运行shell脚本比使脚本suid root更好。所有的陷阱仍然存在。 相反,你应该编写一个适当的程序,进行广泛的安全检查。有些要考虑的要点:
答案 5 :(得分:2)
由于已经提到 sudo ,您可能需要考虑各种沙盒环境,具体取决于您的需求 - 例如jail或类似情况。
答案 6 :(得分:1)
为了提高安全性,请考虑是否可以将操作作为特殊用户或组进行操作,该用户或组具有所需的访问权限。然后,您可以为该用户或组创建脚本setuid / setgid。
答案 7 :(得分:1)
对于一个非常重量级的解决方案,考虑一个MAC(强制访问控制)系统,如SELinux,AppArmor,TrustedBSD等。
答案 8 :(得分:0)
如果用例是在VirtualBox下运行的机器并且安全性不是真正的问题,那么你只需要一个光栅来防止自己在脚下射击,那么呢? (然后安全性参数真的没有意义,因为无论如何由于VirtualBox通过NAT将其隔离的方式,无论如何都无法看到它而导致机器受到损害并不重要。)