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?