Je dois autoriser les utilisateurs du dba
groupe à contrôler les database@
services. La réponse à cette question connexe est de simplement lister tous les systemctl
"verbes" que je veux autoriser dans le sudoers
fichier, cependant, cela ne s'applique pas à mon cas car je ne sais pas à l'avance quelles bases de données peuvent exister dans le système. Par exemple, si je liste
%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
qui ne couvre pas les cas qui pourraient exister dans le futur, et un dba ne pourra pas
$ sudo systemctl start database@omgwowyetanotherawsesomeapp
Quoi qu'il en soit, je pense plus en termes d'emballage que de fidélité à un système spécifique.
Notez que, comme le montre cette réponse étonnante à une autre question connexe , l'utilisation de sudo globs pour cela n'est finalement pas sécurisée:
%dba ALL = /usr/bin/systemctl start database@[a-z]* # UNSAFE!
permet
$ sudo systemctl start database@awsesomeapp unrelatedservice
Je soupçonne que l'utilisation sudo
ne résoudra pas mon problème (même si j'espère que je me trompe). Existe-t-il un autre moyen de permettre aux utilisateurs non root de contrôler les systemd
services?
Pour ce que ça vaut, je dois le faire dans un système CentOS 7 et des systèmes RHEL7 à l'avenir. Je serais également intéressé par des solutions qui fonctionnent sur Arch Linux.