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

42

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

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

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

    
задан Santosh Kumar 27.07.2012 в 17:14
источник

4 ответа

42

Запустите 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 27.07.2012 в 17:21
29

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

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

Shutdown:

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

Restart:

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

consolekit следует из Конечно, ваша система будет установлена.

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

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

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

Спящий режим: (если включен в вашей системе)

/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, вы можете включить это, установив этот ответ: Ссылка

Исходный источник: Ссылка

    
ответ дан Majal 03.12.2013 в 09:10
2

Единство использует много служб gnome, и в этом случае тоже - вы можете отключить gnome.

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

выполнит эту работу.

    
ответ дан Ohad Cohen 30.12.2015 в 10:33
1

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

    
ответ дан Bharadwaj Raju 12.02.2016 в 17:33