Com o comando visudo você editou o arquivo /etc/sudoers , que só se aplica se você prefixar seus comandos com sudo , no seu caso sudo service nginx start .
Sou muito novo no mundo da implantação, mas é isso que está acontecendo. Eu tenho um novo droplet Ubuntu (Ubuntu 16.04.4 LTS) da DigitalOcean. Eu instalei e configurei o nginx e tudo está funcionando bem. Eu ligo e desligo com: service nginx start / service nginx stop , mas eu preciso fazer isso com um usuário diferente chamado pepito .
Quando tento executar service nginx start com pepito , obtenho:
~# service nginx restart
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'nginx.service'.
Authenticating as: pepito
Password:
Mas eu vou estar executando isso de Capistrano, então eu não quero ser solicitado a digitar a senha, então eu adicionei isso ao visudo assim:
pepito ALL=(ALL) NOPASSWD: /usr/sbin/service nginx*
Tentei novamente e mesmo problema. Continue pesquisando e lendo e descubra que ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === é uma mensagem de Polkit , então li um pouco sobre isso e criei o seguinte arquivo em: /etc/polkit-1/localauthority/50-local.d/nginx.pkla
Identity=unix-user:pepito
Action=org.freedesktop.systemd1.manage-units
ResultInactive=yes
ResultActive=yes
Claro que não funciona quando tento iniciar e parar o nginx em pepito . Eu não sei mais o que tentar!
Tags services authorization polkit