Habilita o desligamento de outro computador na LAN sem digitar a senha do sudo

1

Estou tentando executar esse script do meu laptop para desligar o servidor sem precisar digitar a senha do sudo. (Ambos estão executando o Ubuntu 14.04.2 LTS)

ssh -t [email protected] sudo shutdown -h now


lachlan@lachlan-MacBookAir:~/.scripts$ ./optiplex_990_shutdown.sh
[sudo] password for lachlan: 
Connection to 192.168.0.xxx closed.

Como você pode ver, ainda pede senha. As linhas a seguir estão incluídas no arquivo sudoers editado usando sudo visudo .

Cmnd_Alias SHUTDOWN_CMDS = /sbin/poweroff, /sbin/halt, /sbin/reboot
lachlan lachlan-MacBookAir= NOPASSWD: SHUTDOWN_CMDS

A saída de sudo -l é

User lachlan may run the following commands on ubuntu:
(ALL) NOPASSWD: /sbin/poweroff, /sbin/halt, /sbin/reboot
(ALL : ALL) ALL

BTW lachlan também é o nome de usuário para admin no servidor

Eu também tentei executar o seguinte

ssh [email protected] dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

e eu recebo o seguinte no terminal

Error org.freedesktop.ConsoleKit.Manager.NotPrivileged: Not Authorized

Eu preferiria usar o segundo método dbus-send e eu tenho isso funcionando para o meu Intel NUC rodando o Kodibuntu, mas o servidor Ubuntu deve ser mais seguro de alguma forma. BTW eu configurei a autenticação baseada em chave para conexões ssh, então não é isso que me pede a senha.

Obrigado antecipadamente. Desculpas pela má formatação neste post (primeira pergunta)

Eu comparei o conteúdo de /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy
Em ambas as máquinas, a Intel nuc executando o kodibuntu e o optiplex 990 executando o servidor Ubuntu e ambos são os mesmos. Então deve ser que haja vários usuários logados, certo? Não. Eu tentei registrar vários usuários no nuc via ssh de 2 outros laptops e verifiquei com who -a . Então eu corri o seguinte script de ssh [email protected] dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Não tem problema, tudo funciona. Eu registrei os mesmos 2 computadores no servidor ubuntu e executei o mesmo script e recebo Error org.freedesktop.ConsoleKit.Manager.NotPrivileged: Not Authorized

Ok. Do terminal em cada máquina apenas para eliminar quaisquer erros estúpidos que eu possa estar fazendo eu entrei no comando
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
e o mesmo resultado. Então, no kodibuntu você não precisa ser admin e no servidor Ubuntu você faz. Como você muda isso & amp; eu deveria?

    
por Lachlan Forrest 21.06.2015 / 08:38

0 respostas