Мне нужно разрешить пользователям в dba
группе контролировать database@
сервисы. Ответ на этот связанный вопрос состоит в том, чтобы просто перечислить все systemctl
«глаголы», которые я хочу разрешить в sudoers
файле, однако, это не относится к моему случаю, потому что я заранее не знаю, какие базы данных могут существовать в системе. Например, если я перечислю
%dba = /usr/bin/systemctl start database@awsesomeapp
%dba = /usr/bin/systemctl start database@anotherawsesomeapp
%dba = /usr/bin/systemctl start database@yetanotherawsesomeapp
%dba = /usr/bin/systemctl start database@wowyetanotherawsesomeapp
# ... other "verbs" omitted for brevity
это не распространяется на случаи, которые могут существовать в будущем, и DBA не сможет
$ sudo systemctl start database@omgwowyetanotherawsesomeapp
Во всяком случае, я думаю больше об упаковке, чем о том, чтобы играть с определенной системой.
Обратите внимание, что, как показано в этом удивительном ответе на другой связанный вопрос , использование глобусов sudo для этого в конечном счете небезопасно:
%dba ALL = /usr/bin/systemctl start database@[a-z]* # UNSAFE!
позволяет
$ sudo systemctl start database@awsesomeapp unrelatedservice
Я подозреваю, что использование sudo
не решит мою проблему (хотя я надеюсь, что ошибаюсь). Есть ли другой способ разрешить пользователям без полномочий root управлять systemd
службами?
Что бы это ни стоило, мне нужно сделать это в системе CentOS 7 и системах RHEL7 в будущем. Я также был бы заинтересован в решениях, которые работают на Arch Linux.