В настоящее время я пишу веб-приложение с использованием Django, Apache и mod_wsgi, которое предоставляет некоторые функции управления и настройки сервера FreeBSD, включая общие операции с брандмауэром.
Моя библиотека Python/C использует необработанные сокеты для прямого взаимодействия с брандмауэром и прекрасно работает при запуске от имени пользователя root, но операции с необработанными сокетами разрешены только для root.
На данный момент единственное, что я могу придумать, это установить и использовать sudo, чтобы явно разрешить пользователю www доступ к /sbin/ipfw, что не идеально, поскольку я бы предпочел использовать операции с необработанной библиотекой сокетов, а не вызов подпроцесса. .
Я полагаю, что другим вариантом было бы написать (сокеты локального домена) или использовать существующую систему заданий (сельдерей?), Которая работает от имени пользователя root и обрабатывает эти запросы.
Или, возможно, есть какой-то трюк с режимом демона WSGI, о котором я не знаю? Я уверен, что эта проблема уже сталкивалась раньше. Любые советы о том, как лучше всего справиться с этим?