Отключение от терминала без ввода пароля?

51

У меня есть настольная версия Ubuntu.

Мне нравится Терминал, так что я предпочитаю выключать компьютер с помощью shutdownкоманды.

Однако, когда я набираю, shutdown nowон предлагает ввести мой пароль. Есть ли какой-нибудь способ выключить компьютер с помощью этой команды без ввода пароля?

Сантош Кумар
источник
4
Кто-нибудь знает, какая команда выполняется, когда я нажимаю «выключить» в среде рабочего стола?
Кубахаха

Ответы:

53

Откройте терминал (CTRL + T) и введите следующее sudo visudo

Добавьте следующую строку:

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

или же

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

Это позволяет пользователю / группе запускать вышеупомянутые три команды, используя sudo , но без пароля.

Итак, sudo poweroffтеперь приведет к отключению без пароля.


Однако, чтобы сделать это еще чище, мы добавим псевдоним, чтобы выполнять shutdownвызовы sudo shutdown now.

Открыть ~/.bash_aliasesдля редактирования.

nano ~/.bash_aliases

Вставьте следующую строку в конце файла:

alias shutdown='sudo shutdown now' 

Наконец, загрузите изменения в .bash_aliasesфайл ...

source ~/.bash_aliases

Попробуйте!

shutdown

Спасибо, Эрик .

SirCharlo
источник
36

Безопасный способ сделать это без использования sudo и без вмешательства в систему - это выполнить следующие однострочные команды:

Для Ubuntu 14.10 или более ранней версии:

Неисправность:

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

Запустить снова:

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

Конечно, consolekitУстановить consolekit должен быть установлен в вашей системе.

Другие команды, которые вам могут понравиться:

Приостановка:

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

Hibernate: (если включен в вашей системе)

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


Для Ubuntu 15.04 и более поздних версий:

(Это связано со смещением Ubuntu systemdвместо использования Upstart)

systemctl poweroff

systemctl reboot

systemctl suspend

systemctl hibernate

systemctl hybrid-sleep

Поскольку hibernate обычно отключен по умолчанию в системах Ubuntu, вы можете включить его, проверив ответ: https://askubuntu.com/a/617254/101985

Первоисточник: https://bbs.archlinux.org/viewtopic.php?id=127962

Majal
источник
3

Unity использует множество сервисов GNOME, и в этом случае вы также можете отключить GNOME.

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

сделаю работу.

Охад Коэн
источник
Похоже, это работает только для выхода из системы. С man страницы --no-prompt:End the session without user interaction. This only works with --logout.
Pylinux
1

В то время как вы можете использовать метод позволяет NOPASSWDна /usr/sbin/shutdown, хотя другой, DE-независимое решение является просто использовать init 0.

UniversallyUniqueID
источник
0

это просто. используя опцию -S вот так:

echo <your-password> | sudo -S poweroff
Киджун Лю
источник