【问题标题】:php-cgi runs as rootphp-cgi 以 root 身份运行
【发布时间】:2010-09-15 10:50:25
【问题描述】:

我在 lighttpd 1.4 下将 php 5.2.6 作为 cgi 运行,出于某种原因,它始终以 root 身份运行。里面的所有php-cgi进程都归root所有,所有写入文件系统的文件都归root所有。

我尝试将 lighttpd 中的用户设置为非特权用户,并确认它运行正常,只是 php 以 root 身份运行。

如何设置 php-cgi 以作为更安全的用户运行?

【问题讨论】:

    标签: php fastcgi lighttpd


    【解决方案1】:
    1. 确保:

      server.username            = "nonprivuser"
      server.groupname           = "nonprivgroup"
      
    2. 停止 lighttpd。

    3. 检查现有的 php 进程并杀死它们。
    4. 启动 lig​​httpd
    5. 检查 php 进程是否以非 priv 身份运行

    如果 php 仍然以 root 身份运行,那么您可能有一个 SETUID 脚本在某处加载它们(您确实不应该,但它是可行的)

    如果是这种情况,请检查文件 'bin-path' 所指的文件没有任何奇怪的内容。

    【讨论】:

      【解决方案2】:

      您可能有一个以 root 身份在服务器上启动的 fastcgi 进程。如果是这种情况,那么 fastcgi 进程将继续运行从 lighttpd 调用的 php 进程。

      我建议杀死服务器上的 fastcgi 进程并重新启动 lig​​httpd。

      您可能还想查看任何可能启动 fastcgi 守护程序的启动脚本。

      【讨论】:

      • 那么你是说如果没有运行第一个启动的fastcgi进程的用户所有其他运行的用户?有趣...
      • 是的。 FastCGI 分叉一个进程,分叉的进程以与主进程相同的用户身份运行。
      猜你喜欢
      • 2014-05-14
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 2013-12-19
      • 2022-09-29
      相关资源
      最近更新 更多