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