CPanel-如何阻止 Apache 以 root 用户身份运行?

CPanel-如何阻止 Apache 以 root 用户身份运行?
<?php echo `whoami`; ?>

因此,这将返回“root”,我不知道如何阻止它。我正在使用 WebHost Manager/CPanel,它应该创建多个用户/虚拟主机,并让 Apache 以该用户/组的身份生成其进程。但这并没有发生。

如果我登录 WHM 并打开 PHP 和 SuExec 配置部分,我的设置是:

Default PHP Version (.php files)    5
PHP 5 Handler                       cgi
PHP 4 Handler                       none

Apache suEXEC                       on

出了什么问题?如何让 Apache 以正确的用户身份而不是 root 身份运行?

答案1

如果您希望每个站点都以自己的用户身份运行,正确的 PHP 5 处理程序设置是“suPHP”而不是“CGI”。更改此设置后,您应该会看到报告了whoami各个用户。

请注意,您可能必须运行 EasyApache 并在该过程中选择“Mod SuPHP”以重新编译 Apache / PHP,以便首先使用此选项。此操作如下:

主页 >> 软件 >> EasyApache (Apache 更新) 或在命令行上/scripts/easyapache

答案2

Apache 本身很可能以 apache 用户身份运行,但由于 SuExec,root 拥有的 PHP 脚本将以 root 身份运行。这就是您的whoami命令返回 root 用户的原因。

如果您将文档根目录中文件的所有者更改为“apache”或“www-data”(无论您的服务器使用哪一个),那么相同的命令将返回文件的新所有者。

确保所有 PHP 脚本chmod 555和目录不属于与文件相同的用户,这可能也是值得的。这将允许 CGI 执行脚本,但这意味着如果在某个 PHP 脚本中发现缺陷,它将无法修改自身或任何其他脚本,也无法在任何目录中创建新脚本。如果攻击者在 PHP 脚本中发现缺陷,他们仍然可以做很多事情,但您可以采取任何措施让他们更难得逞,这是值得的。

相关内容