0

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

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

4

1 回答 1

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>`;

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

于 2013-02-04T20:37:19.633 回答