Вопрос, заданный К.Ченом: зачем мне привилегии sudo, когда я делаю это из CLI, но мне не нужны такие привилегии, когда я делаю это из GUI.
Первая часть ответа заключается в том, что люди, разрабатывающие среды рабочего стола, такие как Gnome, KDE, Xfce, Mate, Cinnamon, ... пытаются упростить работу своих пользователей и настраивают выключение и перезагрузку, не требуя учетных данных sudo. Это, между прочим, подразумевает, что должна быть последовательность завершения работы, которая не включает в себя завершение работы программы, которая требует привилегий sudo (никак не обойти это).
Я не знаю подробно, как это делает каждый DE, но я знаю, что есть мягкий способ выключить или перезапустить / отключить / перевести вашу систему в режим ожидания, который не требует привилегий root. Вы можете найти оригинальное сообщение в сообщении Arch Linux Forum. По сути, это сводится к выдаче этих команд:
стой
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit"/org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
перезагружать
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
DBus приостановить
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
зимовать
#!/bin/bash
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
Я предполагаю, что кнопки GUI используют примерно эти команды. Чтобы быть уверенным, нужно заглянуть в код, но я считаю, что это безопасная ставка.