那么我们有一个内部的服务器pipe理器(比如Webmin,更具体),包括一堆C CGI程序和CGI Perl脚本,其中一些需要root权限(添加系统用户,pipe理密码,处理邮件队列等)。 )被执行。
目前,Apache作为反向代理服务器,将请求传递给在本地主机上侦听的另一个Web服务器(Xitami),以root用户身份运行。
所以我的问题是,而不是运行一个Web服务器作为根(即使它在127.0.0.1),是否有什么不同的做一个特定的CGI目录/程序/脚本,绝对需要root权限执行setuid根? 还是都同样不安全? 在这种情况下,最好的解决scheme/实践是什么?
最好只设置那些需要这种访问的CGI的根,而不是以root身份运行整个Web服务器。
更好的办法是使用SELinux或者RBAC(或者类似的机制,你没有指定你使用的平台),这样特权操作实际上不需要root权限。