Вопрос

Я запускаю php 5.2.6 в качестве cgi под lighttpd 1.4 и по какой-то причине он всегда работает как root. Все процессы php-cgi в собственности принадлежат пользователю root, а все файлы, записанные в файловую систему, принадлежат пользователю root.

Я попытался установить пользователя в lighttpd как непривилегированного, и подтвердил, что он работает правильно, это просто php, который запускается от имени пользователя root.

Как настроить php-cgi для более безопасного запуска?

Это было полезно?

Решение

<Ол>
  • Убедитесь:

    server.username            = "nonprivuser"
    server.groupname           = "nonprivgroup"
    
  • остановите lighttpd.

  • проверить существующие процессы php и уничтожить их.
  • start lighttpd
  • проверьте, что процессы php работают не как привилегированный

    если php по-прежнему работает от имени пользователя root, то, возможно, где-то загружается скрипт SETUID (вы действительно не должны этого делать, но это возможно)

    если это так, убедитесь, что в файле 'bin-path' нет ничего прикольного.

  • Другие советы

    Возможно, у вас есть процесс fastcgi, который был запущен на сервере от имени пользователя root. Если это так, то процесс fastcgi продолжит запуск процессов php, вызываемых из lighttpd.

    Я предлагаю убить процессы fastcgi на вашем сервере и перезапустить lighttpd.

    Возможно, вы захотите взглянуть на любые сценарии запуска, которые могут запускать демон fastcgi.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top