【发布时间】:2010-09-15 10:50:25
【问题描述】:
我在 lighttpd 1.4 下将 php 5.2.6 作为 cgi 运行,出于某种原因,它始终以 root 身份运行。里面的所有php-cgi进程都归root所有,所有写入文件系统的文件都归root所有。
我尝试将 lighttpd 中的用户设置为非特权用户,并确认它运行正常,只是 php 以 root 身份运行。
如何设置 php-cgi 以作为更安全的用户运行?
【问题讨论】:
我在 lighttpd 1.4 下将 php 5.2.6 作为 cgi 运行,出于某种原因,它始终以 root 身份运行。里面的所有php-cgi进程都归root所有,所有写入文件系统的文件都归root所有。
我尝试将 lighttpd 中的用户设置为非特权用户,并确认它运行正常,只是 php 以 root 身份运行。
如何设置 php-cgi 以作为更安全的用户运行?
【问题讨论】:
确保:
server.username = "nonprivuser"
server.groupname = "nonprivgroup"
停止 lighttpd。
如果 php 仍然以 root 身份运行,那么您可能有一个 SETUID 脚本在某处加载它们(您确实不应该,但它是可行的)
如果是这种情况,请检查文件 'bin-path' 所指的文件没有任何奇怪的内容。
【讨论】:
您可能有一个以 root 身份在服务器上启动的 fastcgi 进程。如果是这种情况,那么 fastcgi 进程将继续运行从 lighttpd 调用的 php 进程。
我建议杀死服务器上的 fastcgi 进程并重新启动 lighttpd。
您可能还想查看任何可能启动 fastcgi 守护程序的启动脚本。
【讨论】: