以root身份运行php脚本

时间:2013-02-04 20:16:35

标签: php linux

我知道像kloxo这样的程序以root身份运行他们的php程序,而lighttpd与主apache web服务器分开。但当我谷歌它有一个用于防火墙管理的PHP脚本并以root身份运行时,有人说你不应该以root权限运行web服务器。

我想知道,kloxo如何使用它没有任何问题? 什么是使用php脚本管理iptables的最佳解决方案(如何使用root权限在php exec()中运行命令)? 还有一些像fopen这样的php函数来编辑文件。

1 个答案:

答案 0 :(得分:1)

如果您希望允许非root用户以root身份运行 adduser 之类的内容,并且您有权编辑sudoers文件(例如,使用 visudo ),您可以授予用户使用 sudo 获取特定命令的权限。在你的sudoers文件中,你有一个这样的条目:

www-user ALL=NOPASSWD: /usr/sbin/adduser

允许用户 www-user root访问 / usr / sbin / adduser ,而无需输入密码。然后,您可以使用脚本中的首选方法调用它:

$output = `/usr/bin/sudo /usr/sbin/adduser <other_arguments>`;

我不会真的推荐这个,只是因为如果有人破坏了您的网络服务器用户帐户,他们可以在您的系统上创建新用户,但如果您绝对需要拥有它,那就是您的意思做到这一点。