Desligar do terminal sem digitar a senha?

51

Eu tenho a edição desktop do Ubuntu.

Gosto do terminal para que prefira desligar meu computador com o shutdowncomando

No entanto, quando digito shutdown now, solicita que eu digite minha senha. Existe alguma maneira de desligar meu computador usando este comando sem inserir minha senha?

Santosh Kumar
fonte
4
Alguém sabe qual comando é executado quando clico em "desligar" no Ambiente de Trabalho?
kubahaha

Respostas:

53

Abra um terminal (CTRL + T) e digite o seguinte sudo visudo

Adicione a seguinte linha:

%group_name ALL=(ALL) NOPASSWD: /sbin/poweroff, /sbin/reboot, /sbin/shutdown

ou

user_name ALL=(ALL) NOPASSWD: /sbin/poweroff, /sbin/reboot, /sbin/shutdown

Isso permite que o usuário / grupo execute os três comandos acima, usando o sudo , porém sem senha.

Portanto, sudo poweroffagora resultará em um desligamento sem senha.


No entanto, para tornar isso ainda mais limpo, vamos adicionar um alias, de modo que a execução de shutdownchamadas sudo shutdown now.

Aberto ~/.bash_aliasespara edição.

nano ~/.bash_aliases

Insira a seguinte linha no final do arquivo:

alias shutdown='sudo shutdown now' 

Por fim, carregue as alterações no .bash_aliasesarquivo ...

source ~/.bash_aliases

Experimente!

shutdown

Obrigado, Eric .

SirCharlo
fonte
36

Uma maneira segura de fazer isso sem usar o sudo e sem mexer no sistema é executando estes comandos de uma linha :

Para o Ubuntu 14.10 ou anterior:

Desligar:

/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

Reiniciar:

/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart

ÉInstalar consolekit claro que o consolekit deve estar instalado no seu sistema.

Outros comandos que você pode gostar:

Suspender:

/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

Hibernação: (se ativado no seu sistema)

/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate


Para o Ubuntu 15.04 e posterior:

(Isso ocorre devido à mudança do Ubuntu em usar em systemdvez de Upstart)

systemctl poweroff

systemctl reboot

systemctl suspend

systemctl hibernate

systemctl hybrid-sleep

Como o hibernate é normalmente desativado por padrão nos sistemas Ubuntu, você pode habilitá-lo verificando esta resposta: https://askubuntu.com/a/617254/101985

Fonte original: https://bbs.archlinux.org/viewtopic.php?id=127962

Majal
fonte
3

O unity usa muitos serviços de gnomo e, nesse caso, também - você pode desligar o gnome.

gnome-session-quit --power-off --force --no-prompt

fará o trabalho.

Ohad Cohen
fonte
Parece que isso funciona apenas para logout. Da página de manual de --no-prompt:End the session without user interaction. This only works with --logout.
Pylinux 2/11
1

Enquanto você pode usar o método de permitir que NOPASSWDem /usr/sbin/shutdown, embora outro, solução DE-independente é para uso apenas init 0.

UniversallyUniqueID
fonte
0

isso é fácil. usando a opção -S assim:

echo <your-password> | sudo -S poweroff
Qijun Liu
fonte