Ich muss Benutzern in der dba
Gruppe erlauben , die database@
Dienste zu steuern . Die Antwort auf diese verwandte Frage besteht darin, nur alle systemctl
"Verben" aufzulisten, die ich in der sudoers
Datei zulassen möchte. Dies gilt jedoch nicht für meinen Fall, da ich vorher nicht weiß, welche Datenbanken im System vorhanden sein könnten. Zum Beispiel, wenn ich aufliste
%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
Dies gilt nicht für Instanzen, die möglicherweise in der Zukunft existieren, und eine Datenbank kann dies nicht
$ sudo systemctl start database@omgwowyetanotherawsesomeapp
Wie auch immer, ich denke mehr an die Verpackung als an ein bestimmtes System.
Beachten Sie, dass die Verwendung von Sudo Globs für diese Frage letztendlich unsicher ist , wie in dieser erstaunlichen Antwort auf eine andere verwandte Frage gezeigt :
%dba ALL = /usr/bin/systemctl start database@[a-z]* # UNSAFE!
erlaubt
$ sudo systemctl start database@awsesomeapp unrelatedservice
Ich vermute, dass die Verwendung sudo
mein Problem nicht lösen wird (obwohl ich sicher hoffe, dass ich falsch liege). Gibt es eine andere Möglichkeit, Nicht-Root-Benutzern die Steuerung von systemd
Diensten zu ermöglichen?
Für das, was es wert ist, muss ich dies in einem CentOS 7-System und in Zukunft in RHEL7-Systemen tun. Ich würde mich auch für Lösungen interessieren, die unter Arch Linux funktionieren.