質問: Ubuntu 18.04でデスクトップを使っているのですが、なぜsudoを使わずに再起動やシャットダウンができるのでしょうか?シャットダウンするたびに疑問が頭をよぎります...。 回答頂けると嬉しいです。
回答: 「なぜ」がどの文脈にかかっているかで回答が変わってくるのですが、「なぜ」が権限にかかるとすれば、以下のような回答になります。 デスクトップ環境を構成する~~ウィンドウマネージャー~~ディスプレイマネージャーはroot権限で動いていて、デスクトップ環境を動かしているユーザーのリクエスト(つまりシャットダウンのボタンを押す等)に応じてシャットダウンなり再起動なりをかけることができます。rootだから。 もうちょいかみ砕いていえば、GUIで再起動やシャットダウンを選択するのは、rootさんに再起動やシャットダウンをお願いしていると考えても良いかと思います。 「なぜデスクトップ環境はユーザー権限で再起動やシャットダウンを可能にしているか」という疑問であるならば、私はあまり明確な回答を持ち合わせていません。 サーバー用途ではなく個人用途なら管理者権限のないユーザーが電源を落とせないのは電気の無駄づかいなのでユーザー権限でシャットダウンできたほうがいい、とは思いますが別にサーバー用途ではGUIを全く使わないわけでもないですし。 ただ、Ubuntu登場よりもずっと昔からLinuxのデスクトップ環境はこの設定がデフォルトになっているという記憶があります。伝統的にそうなっている、としか言えないのかもしれません。 なお、WindowsやMacは別に管理者権限なくてもシャットダウンできます。Windows以前のPCでも同様です。そういう環境に倣っているのかもしれません。 こんな説明でご理解いただけるでしょうか。 ### 追加情報 コメント欄でotnさんとのやりとりにより、中の仕組みが少し見えました。 最近のデスクトップマネージャーはpolkitという権限管理の仕組みを利用して電源オプションの管理、実行をおこなっているようです。 polkitよる設定の解説がここに載っています。 org.freedesktop.consolekit.system.stopやorg.freedesktop.consolekit.system.restartというIDで管理されていて、デフォルトではログインユーザーには電源操作を許可しています。 なお、非ログイン時の電源操作はまた別の仕組みにより制御されているようです。