<?php echo `whoami`; ?>
所以这是返回“根”,我不知道如何防止它。 我正在使用WebHost Manager / CPanel,它应该创build多个用户/虚拟主机,并使Apache产生与用户/组一样的进程。 这没有发生。
如果我login到WHM并打开PHP和SuExecconfiguration部分,我的设置是:
Default PHP Version (.php files) 5 PHP 5 Handler cgi PHP 4 Handler none Apache suEXEC on
怎么了? 我如何让Apache以正确的用户身份运行而不是root?
如果您希望每个站点都以自己的用户身份运行,则正确的PHP 5 Handler设置为“suPHP”而不是“CGI”。 一旦你改变这个,你应该看到你的whoami报告个人用户。
请注意,您可能需要运行EasyApache,并在此过程中select“Mod SuPHP”,以重新编译Apache / PHP,以使此选项可用。 这是在下面完成的:
Main >> Software >> EasyApache(Apache Update)或在命令行/scripts/easyapache
Apache本身很可能是作为apache用户运行的,但是由于SuExec,归root所有的PHP脚本将以root身份运行。 这就是为什么你的whoami命令返回root用户。
如果您将文档根目录中的文件的所有者更改为“apache”或“www-data”(您的服务器使用的任何一个),则该命令将返回文件的新所有者。
确保所有的PHP脚本都是chmod 555 ,目录不是与文件相同的用户。 这将允许CGI执行这些脚本,但是这意味着如果在其中一个PHP脚本中发现了一个缺陷,它将不能修改它自己或任何其他脚本,并且将不能创build一个新的脚本在任何目录中。 如果攻击者在PHP脚本中发现了一个漏洞,攻击者仍然可以做很多事情,但是为了让攻击者更难做到这一点是值得的。