Какой лучший способ записи в системные файлы Linux с использованием PHP

1

Нам нужны некоторые скрипты для создания файлов конфигурации для сетевых сервисов, таких как DHCP, DNS и Network, основанных на пользовательских вводах. Для этого требуется root-доступ, но я не знаю, как запустить PHP-приложение как root. Он проходит через общедоступный веб-интерфейс.

Теги:
security
networking

3 ответа

6
Лучший ответ

Awww... предоставление прав root для PHP или веб-сервера никогда не является хорошей практикой, независимо от того, насколько безопасна ваша настройка.

Как насчет того, чтобы PHP записывал измененные файлы конфигурации во временный каталог:

/home/system/transfer/apache/httpd.conf
/home/system/transfer/system/dhcp.conf
/home/system/transfer/mysql/my.ini

и a sudo задание cron, запускающее оболочку script, извлечение из них и копирование их в нужное место (также забота о перезапуске служб и все такое) на пятиминутке?

Было бы намного безопаснее, если бы пользователь Web/PHP напрямую записывал файлы конфигурации, а также было бы относительно легко настроить процесс управления версиями, который позволяет откатить файл конфигурации до более ранней версии.

  • 1
    Он может сделать ссылку в исходном месте и переместить конфигурационные файлы в temp-dir. В этом случае ему не нужно использовать cron.
  • 0
    Предполагая, что вы используете Linux: вместо запуска задания cron я бы использовал incron для просмотра каталога и не позволял PHP писать реальные файлы конфигурации, а только данные из пользовательского ввода. Затем задание incron использует эти данные для создания реальных файлов конфигурации.
Показать ещё 1 комментарий
2

Вместо предоставления доступа к корневому файлу PHP script сделайте файлы конфигурации доступными для записи веб-пользователям.

0
  • Запустите apache как пользователь root.
  • Какой адрес вашего веб-сайта?
  • 0
    Забавно ... но сделай это комментарием.
  • 3
    1. Готово 2.lemonparty.org
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню