Não é possível reiniciar um serviço systemctl remotamente como um usuário não root

2

Eu tenho um systemd.socket chamado gunicorn.socket que eu gostaria de reiniciar depois de atualizar algum código em um servidor remoto.

Eu segui as etapas detalhadas em Como permitir que um usuário não raiz reinicie um serviço e systemctl continue pedindo minha senha de usuário. Aqui está o que eu fiz tentando executar systemctl restart gunicorn.socket com usuário john :

# added an appadmin group to allow the restart command to john
addgroup appadmin
usermod -a -G appadmin john
visudo

Em sudoers :

Cmnd_Alias MYAPP_CMNDS = /bin/systemctl start gunicorn.socket, /bin/systemctl stop gunicorn.socket, /bin/systemctl restart gunicorn.socket
%appadmin ALL=(ALL) NOPASSWD: MYAPP_CMNDS

Então sudo systemctl restart gunicorn.socket funciona bem enquanto está no servidor, mas quando eu tento remotamente fico:

ssh example.com "sudo systemctl restart gunicorn.socket"
Failed to restart gunicorn.socket: Interactive authentication required.
See system logs and 'systemctl status gunicorn.socket' for details.

Alguma ideia? Estou usando o Ubuntu 17.04.

Atualização: adicionando conteúdo completo de /etc/sudoers :

Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Cmnd alias specification
Cmnd_Alias MYAPP_CMNDS = /bin/systemctl start gunicorn.socket, /bin/systemctl stop gunicorn.socket, /bin/systemctl restart gunicorn.socket
%appadmin ALL=(ALL) NOPASSWD: MYAPP_CMNDS

# User privilege specification
root    ALL=(ALL:ALL) ALL
john        ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
    
por marcanuy 23.07.2017 / 17:52

1 resposta

-1

Verifique se a opção 'requiretty' não está definida em / etc / sudoers.

Veja esta pergunta para obter mais informações: link

    
por 23.07.2017 / 18:01