A primeira linha tem a sintaxe correta.
user1 ALL=(ALL) NOPASSWD: /etc/init.d/service-script
Isso significa que: user1 pode, em TODOS os hosts que usam esse arquivo /etc/sudoers
, se tornar TODOS os usuários para executar /etc/init.d/service-script
sem uma solicitação de senha.
A segunda linha tem uma sintaxe incorreta, pelo menos para versões modernas de sudo
. Se você editou /etc/sudoers
com o comando visudo
recomendado, você receberia uma mensagem semelhante a esta após sair do seu editor favorito:
File /etc/sudoers.tmp saved
>>> /etc/sudoers: syntax error near line 28 <<<
What now?
Ao digitar um ponto de interrogação, você receberá uma lista de opções:
Options are:
(e)dit sudoers file again
e(x)it without saving changes to sudoers file
(Q)uit and save changes to sudoers file (DANGER!)
What now?
Seria melhor selecionar 'e' e remover a linha incorreta, ou 'x' para descartar todas as edições feitas desta vez.
Você pode querer digitar um comentário como este no arquivo /etc/sudoers
para lembrá-lo da sintaxe correta:
# WHO WHERE = (AS WHOM) WHAT
Entre as partes (AS WHOM)
e WHAT
, você pode adicionar algumas tags terminadas por dois pontos que podem afetar alguns detalhes do procedimento.
Como o script de serviço está localizado em /etc/init.d, aparentemente ele deve ser executado como root. Então a linha "ideal" do / etc / sudoers seria:
user1 ALL=(root) NOPASSWD: /etc/init.d/service-script
O usuário deve executá-lo como:
sudo /etc/init.d/service-script
ou explicitamente
sudo -u root /etc/init.d/service-script
Adicionar argumentos ao final da linha de comando é permitido.