Я понимаю, что это плохая практика, на самом деле очень опасно разрешать произвольное выполнение кода без его полной проверки и т. Д.
True.
Но, скажем, вам поручено написать небольшое приложение, позволяющее добавлять vhosts в конфигурацию apache.
Не имеет отношения к первому пункту. Совершенно не связаны. В самом деле, почему первый пункт даже там?
Добавление vhosts - это простой скрипт. Вы просто пишете сценарий и заставляете его работать. Это требует чрезвычайных привилегий. Но это не «произвольное выполнение кода». И это будет «полностью подтверждено» (что бы это ни значило. Вы пишете это. Вы подтверждаете это.)
Это не хороший выбор для "веб-приложения". И это не хороший выбор для демона. Действительно, очень трудно увидеть связь между «добавлением vhosts в конфигурацию apache» и «веб-приложениями, управляющими демонами».
Это просто скрипт, который просто обновляет файл. Ничего особенного. Это требует привилегий, так что только несколько человек могут запустить его. Ничего особенного там тоже нет. Используйте sudo
.
Ваш код выполняется с полными привилегиями,
Очевидно. Скрипт не может обновить vhosts без каких-либо привилегий.
Если под "вашим кодом" вы не подразумеваете скрипт, который обновляет vhosts. Если вы имеете в виду что-то еще, например, веб-страницу, которая позволяет кому-то писать скрипт, который обновляет vhosts. В этом случае вы связали скрипт с веб-приложением, которое запускает скрипт.
записываете ли вы будущие переменные в базу данных и выполняете ли задание cron (с полными привилегиями) сценарий, который извлекает переменные из базы данных и добавляет их в файл конфигурации шаблона и т. Д.
Конечно. Люди делают это. Это кажется ужасно сложным.
Используйте celery
вместо использования собственного фонового процессора. http://ask.github.com/celery/getting-started/introduction.html