考虑到SUID shell 脚本的危险,是否有更安全的方法可以在 Linux 中为具有 root 权限的脚本(bash、PHP)提供无密码访问权限?
(Ubuntu 8.10)
如果您使用 sudo 路线,请务必查看 sudoers 手册页的“防止壳逃逸”部分。
我会推荐sudo。确保适当收紧sudoers
文件;是的,您可以允许在不请求密码的情况下执行某些命令。
从安全的角度来看,将 sudo 配置为让普通用户以提升的权限运行 shell 脚本并不比让脚本 suid root 更好。所有的陷阱仍然存在。相反,您应该编写一个适当的程序来进行广泛的安全检查。需要考虑的几点:
由于已经提到了sudo ,您可能需要考虑各种沙盒环境,具体取决于您的需要——例如,监狱或类似环境。
为了提高安全性,请考虑是否可以作为具有所需访问权限的特殊用户或组执行操作。然后,您可以为该用户或组创建脚本 setuid/setgid。
对于真正重量级的解决方案,请考虑 MAC(强制访问控制)系统,例如 SELinux、AppArmor、TrustedBSD 等。
如果用例是在 VirtualBox 下运行的机器并且安全性不是真正的问题,那么您只需要一个挡光板来防止自己在脚上开枪,然后呢?(那么安全论点就没有意义了,因为由于 VirtualBox 通过 NAT 隔离它的方式,机器是否被一个无论如何都看不到的外人破坏并不重要。)