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