Питання, поставлене К.Ченом, це: чому мені потрібні привілеї sudo, коли я роблю це з CLI, але мені не потрібні такі привілеї, коли я роблю це з GUI.
Перша частина відповіді полягає в тому, що люди, які розробляють робочі середовища, такі як Gnome, KDE, Xfce, Mate, Cinnamon, намагаються спростити роботу своїх користувачів, і вони налаштовують вимикання та перезавантаження, не вимагаючи облікових даних sudo. Це, до речі, означає, що повинна існувати послідовність вимикання ні включають вимикання програми, що вимагає привілеїв sudo (ніяк не можна обійти це).
Я не знаю детально, як кожен DE робить це, але я знаю, що є м'який спосіб збити, або перезапустити / вимкнути / спляти вашу систему, яка не вимагає привілеїв root. Ви можете знайти оригінальну публікацію у посаді форуму Arch Linux . По суті, це означає видачу команд hese:
зупинка
#!/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-suspend
#!/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 використовують приблизно ці команди. Щоб бути впевненим, треба дивитися на код, але я вважаю, що це безпечна ставка.