Выборочный 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.

Другие вопросы по тегам