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で動作するソリューションにも興味があります。