dbaGruptaki kullanıcıların database@hizmetleri kontrol etmesine izin vermem gerekiyor . Bu ilgili sorunun cevabı systemctl, sudoersdosyada izin vermek istediğim tüm "fiilleri" listelemektir , ancak benim durumum için geçerli değildir, çünkü önceden hangi veritabanlarının sistemde mevcut olabileceğini bilmiyorum. Örneğin,
%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
bu, gelecekte var olabilecek örnekleri kapsamaz ve bir dba
$ sudo systemctl start database@omgwowyetanotherawsesomeapp
Her neyse, belirli bir sistemle uğraşmaktan ziyade ambalaj açısından daha fazla düşünüyorum.
Başka bir ilgili soruya verilen bu şaşırtıcı cevapta gösterildiği gibi, bunun için sudo globs kullanmanın sonuçta güvensiz olduğuna dikkat edin:
%dba ALL = /usr/bin/systemctl start database@[a-z]* # UNSAFE!
izin veriyor
$ sudo systemctl start database@awsesomeapp unrelatedservice
Kullanmanın sudosorunumu çözmeyeceğinden şüpheleniyorum (yanlış olduğumu umuyorum). Kök olmayan kullanıcıların systemdhizmetleri denetlemesine izin vermenin başka bir yolu var mı ?
Değeri için, bunu bir CentOS 7 sisteminde ve gelecekte RHEL7 sistemlerinde yapmam gerekiyor. Ayrıca Arch Linux üzerinde çalışan çözümlerle de ilgilenirim.