Devo consentire agli utenti del dbagruppo di controllare i database@servizi. La risposta a questa domanda correlata è semplicemente elencare tutti i systemctl"verbi" che voglio consentire nel sudoersfile, 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 sudonon risolverà il mio problema (anche se spero di sbagliarmi). Esiste un altro modo per consentire agli utenti non root di controllare i systemdservizi?
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.