Ich habe einen Eintrag in / etc / sudo für einen Benutzer, der sudo für alle Befehle ausführen kann.
fred ALL = (ALL: ALL) ALL
Gemäß der Dokumentation ist das endgültige ALL dafür verantwortlich, den Zugriff auf alle Befehle zu ermöglichen.
Ich möchte, dass Fred unter Ubuntu 14.04 einen Neustart von nginx ausführen kann, ohne ein sudo-Passwort anzugeben, und trotzdem die Möglichkeit behält, sudo für andere Befehle aufzurufen. Die sudoers Dokumentation ist nicht klar, aber ich glaube
fred ALL = (ALL) NOPASSWD: / usr / sbin / service
Lässt Fred nur einen Befehl ausführen. Ich möchte Fred die Möglichkeit geben, alle Befehle als root über sudo auszuführen, wobei alle außer / usr / sbin / service ein Passwort erfordern.
Ein Blick auf das BNF der Dokumentation
User_Spec ::= User_List Host_List '=' Cmnd_Spec_List (':' Host_List '=' Cmnd_Spec_List)*
Cmnd_Spec_List ::= Cmnd_Spec | Cmnd_Spec ',' Cmnd_Spec_List
Cmnd_Spec ::= Runas_Spec? SELinux_Spec? Solaris_Priv_Spec? Tag_Spec* Cmnd
Runas_Spec ::= '(' Runas_List? (':' Runas_List)? ')'
SELinux_Spec ::= ('ROLE=role' | 'TYPE=type')
Solaris_Priv_Spec ::= ('PRIVS=privset' | 'LIMITPRIVS=privset')
Tag_Spec ::= ('EXEC:' |
'NOEXEC:' | 'FOLLOW:' | 'NOFOLLOW' |
'LOG_INPUT:' | 'NOLOG_INPUT:' | 'LOG_OUTPUT:' |
'NOLOG_OUTPUT:' | 'MAIL:' | 'NOMAIL:' | 'PASSWD:' |
'NOPASSWD:' | 'SETENV:' | 'NOSETENV:')
Es scheint, dass ich möglicherweise mehrere Cmnd_Spec_Lists verwenden kann
fred ALL = (ALL: ALL) ALL, NOPASSWD: / usr / sbin / service
Die Dokumentation besagt jedoch nicht, dass das letztere NOPASSWD: Cmnd_Spec den ALL-Befehlsstammzugriff nur für diesen Befehl überschreibt.
Das ist die Art von Dingen, die ich gerne beim ersten Mal richtig mache. Kann jemand bitte bestätigen, dass die letzte Zeile für den jeweiligen Zweck funktioniert (oder, alternativ, dass sie nicht funktioniert)?
Wenn es funktioniert, damit fred den Dienst ohne ein Sudo-Passwort ausführen kann, kann ich die Argumente auf service beschränken, sodass fred nur ohne ein Passwort auf service nginx funktioniert, oder sogar noch besser, sodass fred nur diesen Server neu starten kann ohne Passwort?
Vielen Dank.