Necesito permitir que los usuarios del dba
grupo controlen los database@
servicios. La respuesta a esta pregunta relacionada es simplemente enumerar todos los systemctl
"verbos" que quiero permitir en el sudoers
archivo, sin embargo, eso no se aplica a mi caso porque no sé de antemano qué bases de datos pueden existir en el sistema. Por ejemplo, si enumero
%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
eso no cubre instancias que puedan existir en el futuro, y un dba no podrá
$ sudo systemctl start database@omgwowyetanotherawsesomeapp
De todos modos, estoy pensando más en términos de empaque que en manipular un sistema específico.
Tenga en cuenta que, como se muestra en esta sorprendente respuesta a otra pregunta relacionada , el uso de sudo globs para esto es en última instancia inseguro:
%dba ALL = /usr/bin/systemctl start database@[a-z]* # UNSAFE!
permite
$ sudo systemctl start database@awsesomeapp unrelatedservice
Sospecho que usar sudo
no va a resolver mi problema (aunque espero estar equivocado). ¿Hay alguna otra forma de permitir que los usuarios no root controlen los systemd
servicios?
Para lo que vale, necesito hacer esto en un sistema CentOS 7 y sistemas RHEL7 en el futuro. También estaría interesado en soluciones que funcionen en Arch Linux.