Назад | Перейти на главную страницу

Как управлять непривилегированным администрированием системных служб с помощью Debian?

В нашей лаборатории есть несколько услуг, которыми занимаются разные аспиранты (например, я). Колебания велики, и люди выполняют работу, не уступающую своим исследовательским обязанностям. До сих пор службы работали на разных машинах с разными настройками ОС, что быстро приводило к аду администрирования.

Мы хотим объединить наши настройки службы. Наша основная идея заключается в том, чтобы люди, ответственные за сервисы, больше не вмешивались в основную систему. Помимо основных систем, таких как NFS и kerberos, типичная служба может работать уже без полномочий root. Я говорю об apache, mysql, subversion, почте с openxchange и так далее. Перенаправление привилегированных портов тоже не проблема (источник).

Остается только конфигурация сервиса и его полезная нагрузка. Один из сценариев, который мы предполагали, заключается в том, что у каждой службы есть собственный пользователь и домашний каталог, доступный для соответствующих администраторов. Резервное копирование и откат службы просты, так как все необходимое для работы службы находится в одном месте.

Спасибо за любой совет!

Не должно быть слишком сложно запустить общесистемную установку apache2 с конфигурациями домена для каждого пользователя в их собственном каталоге.

То же самое и с mysql, многие пользователи могут использовать один и тот же сервер mysql, не наталкиваясь на них, и, если необходимо, mysql можно запускать без привилегий в собственном каталоге пользователя.

не очень уверен в svn, но я предполагаю, что это будет еще один случай сервера, который может работать без привилегий, или общесистемная установка с настраиваемыми пользовательскими конфигурациями.

почта и openexchange могут быть отдельной проблемой. не знаком с openexchange, но почтовый сервер, такой как postfix, можно настроить chroot'd в доме пользователя, работающем на непривилегированном порту.

для apache2 и пользовательских файлов все, что вам нужно, это такая строка, как:

Include /home/*/httpd/

в вашей общесистемной конфигурации apache. что позволит пользователям иметь каталог ~/httpd/ где они могли бы разместить свои файлы конфигурации для своих виртуальных хостов и тому подобное.

Иногда я думал о том, что вы пытаетесь сделать, но в конце я всегда возвращаюсь к sudo. Я думаю, что изначально в Linux довольно сложно достичь этой цели, возможно, с некоторым использованием SElinux. Взгляните на эту статью:

http://www.ibm.com/developerworks/linux/library/l-rbac-selinux/

Не очень просто, но интригующе. Может быть, проще было бы использовать solaris и его возможности rbac. Перемещение файлов конфигурации служб в какой-то другой каталог - это своего рода беспорядок, когда вам нужно обновить пакеты. В этом случае, возможно, лучше всего перепаковать программное обеспечение и изменить целевые каталоги.