Выборочный setuid root или запуск приложения от имени root? (контекст веб-сервера /cgi)
Ну, у нас есть собственный серверный менеджер (например, Webmin, только более конкретный), состоящий из набора CGI-программ на C и Perl-скриптов CGI, некоторые из которых требуют привилегий root (добавление системных пользователей, управление паролями, работа с почтовыми очередями и т. Д.).) быть выполненным.
В настоящее время Apache работает в качестве обратного прокси-сервера и передает запросы другому веб-серверу (Xitami), который прослушивает localhost и работает от имени пользователя root.
Итак, мой вопрос заключается в том, что вместо запуска веб-сервера от имени пользователя root (даже если он работает на 127.0.0.1), он отличается от выполнения root setuid для определенных каталогов / программ / сценариев cgi, которым для выполнения абсолютно необходимы привилегии root? Или оба одинаково небезопасны? Что может быть лучшим решением / практикой в этом сценарии?
1 ответ
Лучше установить root только для тех CGI, которым нужен такой доступ, вместо того, чтобы запускать весь веб-сервер от имени root.
Еще лучше было бы использовать SELinux или RBAC (или подобный механизм, вы не указали, какую платформу вы используете), чтобы привилегированные операции фактически не нуждались в root.