Apache运行为无人,但whoami显示“root”或我的用户名

时间:2012-09-19 15:47:04

标签: php apache ownership

问题是我used ps aux | grep apache说apache是​​无人运行的。 但后来我使用exec("whoami"),它给出了不同的结果:root或gt。这取决于脚本的所有者。如果脚本归root所有,则whoami为root;如果归gt所有,则whoami为gt。 我还检查了httpd.conf,apache用户是nobody,group is nobody。

那么有人可以解释一下吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您使用的是cgi或fast-cgi,

要成为“nobody”你需要使用mod_php(php作为apache模块)

http://php.net/manual/en/security.apache.php

  

当PHP用作Apache模块时,它继承了Apache的用户   权限(通常是“nobody”用户的权限。)

http://www.php.net/manual/en/security.cgi-bin.attacks.php

  

使用PHP作为CGI二进制文件是出于某种原因的设置选项   不希望将PHP作为模块集成到服务器软件中(如   Apache),或将使用PHP与不同种类的CGI包装器   为脚本创建安全的chroot和setuid环境。

还有SuPHP https://serverfault.com/questions/7589/how-do-you-run-a-php-script-as-the-owner