Wyłączenie z terminala bez podawania hasła?

50

Mam wersję Ubuntu na komputer.

Podoba mi się terminal, dlatego wolę zamknąć komputer za pomocą shutdownpolecenia.

Jednak po shutdown nowwpisaniu pojawia się monit o podanie hasła. Czy istnieje sposób, aby zamknąć komputer za pomocą tego polecenia bez wprowadzania hasła?

Santosh Kumar
źródło
4
Czy ktoś wie, jakie polecenie zostanie wykonane po kliknięciu „zamknij” w środowisku Desktop?
kubahaha

Odpowiedzi:

52

Otwórz terminal (CTRL + T) i wpisz następujące polecenie sudo visudo

Dodaj następujący wiersz:

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

lub

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

Dzięki temu użytkownik / grupa może uruchomić powyższe trzy polecenia, używając sudo , jednak bez hasła.

Tak więc sudo poweroffspowoduje teraz zamknięcie bez hasła.


Jednak aby uczynić to jeszcze bardziej czystym, dodamy alias, aby umożliwić uruchamianie shutdownpołączeń sudo shutdown now.

Otwórz ~/.bash_aliasesdo edycji.

nano ~/.bash_aliases

Wstaw następujący wiersz na końcu pliku:

alias shutdown='sudo shutdown now' 

Na koniec załaduj zmiany do .bash_aliasespliku ...

source ~/.bash_aliases

Wypróbuj to!

shutdown

Dzięki, Eric .

SirCharlo
źródło
36

Bezpieczny sposób to zrobić bez użycia sudo i bez majstrować przy systemie, to wykonując te jedno-liner polecenia:

W systemie Ubuntu 14.10 lub wcześniejszym:

Zamknąć:

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

Uruchom ponownie:

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

ConsolekitZainstaluj Consolekit powinien oczywiście być zainstalowany w twoim systemie.

Inne polecenia, które mogą Ci się spodobać:

Wstrzymać, zawieszać:

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

Hibernacja: (jeśli jest włączona w systemie)

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


W przypadku Ubuntu 15.04 i nowszych:

(Jest to spowodowane zmianą sposobu używania Ubuntu systemdzamiast Upstart)

systemctl poweroff

systemctl reboot

systemctl suspend

systemctl hibernate

systemctl hybrid-sleep

Ponieważ hibernacja jest zwykle domyślnie wyłączona w systemach Ubuntu, możesz to włączyć, sprawdzając tę ​​odpowiedź: https://askubuntu.com/a/617254/101985

Oryginalne źródło: https://bbs.archlinux.org/viewtopic.php?id=127962

Majal
źródło
3

jedność korzysta z wielu usług gnome, a w tym przypadku - możesz wyłączyć gnome w sposób.

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

wykona robotę.

Ohad Cohen
źródło
Wygląda na to, że działa to tylko w celu wylogowania. Ze strony --no-promptEnd the session without user interaction. This only works with --logout.
podręcznika użytkownika
1

Podczas gdy można użyć metody pozwalające NOPASSWDna /usr/sbin/shutdown, choć inny, DE-niezależne rozwiązanie jest po prostu użyć init 0.

UniversallyUniqueID
źródło
0

tołatwe. przy użyciu opcji -S w następujący sposób:

echo <your-password> | sudo -S poweroff
Qijun Liu
źródło