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.