K.Chenが尋ねた質問は次のとおりです。CLIから実行するときにsudo特権が必要なのに、GUIから実行するときにそのような特権は必要ないのですが。
答えの最初の部分は、Gnome、KDE、Xfce、Mate、Cinnamonなどのデスクトップ環境を設計するユーザーがユーザーの作業を簡略化しようとし、sudo資格情報を必要とせずにシャットダウンと再起動を構成することです。これは、偶然にも、sudo特権を必要としない(それを回避する方法ではない)プログラムのシャットダウンを含まないシャットダウンシーケンスが必要であることを意味します。
各DEがどのように実行するかは詳しくは知りませんが、システムを停止または再起動/シャットダウン/休止状態にする穏やかな方法があり、ルート権限は必要ありません。元の投稿はArch Linuxフォーラムの投稿にあります。本質的には、次のコマンドを発行することになります。
止める
#!/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ボタンはおおよそこれらのコマンドを使用しています。確かに、コードを調べる必要がありますが、これは安全な賭けだと思います。