Devo consentire agli utenti del dba
gruppo di controllare i database@
servizi. La risposta a questa domanda correlata è semplicemente elencare tutti i systemctl
"verbi" che voglio consentire nel sudoers
file, tuttavia, che non si applicano al mio caso perché non so in anticipo quali database potrebbero esistere nel sistema. Ad esempio, se elenco
%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
che non copre casi che potrebbero esistere in futuro e un dba non sarà in grado di farlo
$ sudo systemctl start database@omgwowyetanotherawsesomeapp
Ad ogni modo, sto pensando più in termini di packaging che di fidelizzazione con un sistema specifico.
Nota che, come mostrato in questa straordinaria risposta a un'altra domanda correlata , l'uso di sudo globs per questo è in definitiva insicuro:
%dba ALL = /usr/bin/systemctl start database@[a-z]* # UNSAFE!
permette
$ sudo systemctl start database@awsesomeapp unrelatedservice
Sospetto che l'uso sudo
non risolverà il mio problema (anche se spero di sbagliarmi). Esiste un altro modo per consentire agli utenti non root di controllare i systemd
servizi?
Per quello che vale, devo farlo in un sistema CentOS 7 e in RHEL7 in futuro. Sarei anche interessato a soluzioni che funzionano su Arch Linux.