電源ボタンは、ルートの許可なしにコンピューターをどのようにシャットダウンしますか?


36

コマンドラインまたは端末からコンピューターをシャットダウンしようとすると、root権限が必要です。

amy@amy:~$ shutdown now
shutdown: Need to be root

そして

amy@amy:~$ halt
halt: Need to be root

しかし、グラフィカルユーザーインターフェイス(シャットダウンボタン、ハードウェアシャットダウンボタンなど)を使用してシャットダウンする場合、パスワードを要求されません。グラフィカルインターフェイスのシャットダウンは何ですか?また、パスワードやルート権限が必要ないのはなぜですか?

Ubuntu 11.04 Nattyを使用しています。



1
攻撃者がコンピュータに物理的にアクセスできる場合、あなたはすでに負けているからです。箱の手の届くところにいる誰かがほとんど何もしないようにしようとすることはせいぜい遅延戦術であり、ほとんどの場合、攻撃者よりも日々のユーザーに多くの不便をもたらします。ほとんどのLinuxディストリビューションでは、まさにこの理由で起動中に厳しく話された場合、ルートプロンプトが表示されます。
ジョセフロジャース

回答:


33

ハードウェアの電源ボタンは、acpid(ACPIデーモン)が通知して反応するACPIイベントをトリガーします。この場合は、システムをシャットダウンしますが、必要なことは何でもできます。ACPIデーモンはルートとして実行されるため、システムをシャットダウンする権限があります。デスクトップ環境(gdmGnomeなど)は通常、rootとしても実行されるため、同じように動作するのではないかと思われます。システムをシャットダウンする権限はありませんが、シャットダウンして実行できることを伝えるgdmことができます。あなたに代わって


安全ですか?「あなたはそれをあなたがやりたいことは何でもできます。」
アミサシン

7
acpid既に行っていることとは異なることを行うには、rootになる必要があります。そのため、安全でないことを行う許可を既に持っています。またacpid、SELinuxなどのMACシステムを使用して保護し、rootとして実行されている場合でも、許可されていることを制限することができます。
ウォーレンヤング

5
@amyassinまあ、それを変更するには、root権限が必要です。通常のユーザーは何をすべきかを伝えることができません。ただしacpid、構成可能であり、表示されるハードウェアイベントに応じて異なるスクリプトを実行できます(たとえば、acpid電源ボタンを押すとコンピューターがロックされます)
Michael Mrozek

7
@amyassen誰かがあなたのマシンに物理的にアクセスできる場合、セキュリティについて心配するのは遅すぎます-電源ボタンが正常なシャットダウンをトリガーしない場合、電源コードを引っ張って、不正なシャットダウンを引き起こすことができます。
シャドゥール

3
「悪意のあるソフトウェア」は、シャットダウンでinitに指示するためにルート所有権とSUID許可を取得する必要があります-そして、その時点に達するまでに、シャットダウンの可能性よりも大きな問題を心配する必要があります。
シャドゥール

11

Michaelの答えは、ハードウェアの電源スイッチを使用する場合のシステム機能について正しく説明していますが、ほとんどのデスクトップ環境では、実際にdbusそれを行うのではなく、この目的で使用しています。例えば、GNOMEの用途dbusorg.freedesktop.Hal.Device.SystemPowerManagement.Shutdownシャットダウンボタンがクリックされたとき。これが送信されるとdbus、メッセージを送信するユーザーにシャットダウンの実行が許可されているかどうかを確認するチェックが行われ、許可されている場合はシステムがシャットダウンされます。

これをエミュレートするには、を使用しdbus-sendます。たとえば、を使用してシステムをシャットダウンするには、dbus次のようなものを使用します。

dbus-send --system --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.