GNOMEを搭載したUbuntu 10.04 LTSデスクトップPCを使用しています。
どうすればGNOMEで、またはrootでさえも再起動/シャットダウン/サスペンド/休止状態機能を完全に無効にできますか?ルートが「reboot」コマンドまたは「pm-suspend」コマンドを発行するため、何も実行されず、マシンは起動します。これらの基本的な「機能」を完全に無効にするにはどうすればよいですか?
GNOMEを搭載したUbuntu 10.04 LTSデスクトップPCを使用しています。
どうすればGNOMEで、またはrootでさえも再起動/シャットダウン/サスペンド/休止状態機能を完全に無効にできますか?ルートが「reboot」コマンドまたは「pm-suspend」コマンドを発行するため、何も実行されず、マシンは起動します。これらの基本的な「機能」を完全に無効にするにはどうすればよいですか?
回答:
これらのアクションへのユーザーアクセスは、polkitによって制御されます。特に、次のアクションに対応しています。
org.freedesktop.consolekit.system.stop
org.freedesktop.consolekit.system.restart
org.freedesktop.upower.suspend
org.freedesktop.upower.hibernate
これらのアクションはすべて、アクティブなローカルユーザーに対してデフォルトで許可されています(ただしconsolekit
、最初の2つのアクセス許可は、システムにログインしている単一のユーザーがいる場合にのみ機能します)。
これらのアクションを無効にするには、次の/etc/polkit-1/50-local.d/disable-shutdown.pkla
ようなファイルを作成します。
[Disable shutdown/whatever]
Identity=unix-user:*
Action=org.freedesktop.consolekit.system.stop;org.freedesktop.consolekit.system.restart;org.freedesktop.upower.suspend;org.freedesktop.upower.hibernate
ResultAny=no
ResultInactive=no
ResultActive=no
これにより、これらのアクションが完了しなくなります。これらのポリシーファイルの詳細については、を実行してくださいman pklocalauthority
。
root
ただし、制限しようとしている場合、これはささいな不便にすぎません。定義によりroot
、従来のUNIXの任意アクセス制御システムによる無制限のアカウントです。完全なroot
アクセス権を与えたユーザーを信頼できない場合、システムをシャットダウンするだけでなく、より大きな問題が発生します。
Ubuntuの以降のバージョンでは、誰かが互換性を壊すことにしたことに注意してください。14.04でlightdmからのシャットダウン/再起動を無効にする方法で回答したように?アクションに変更しているようだ「org.freedesktop。login1 .reboot」(と-のように)。
たとえば、14.04で次の行を/etc/polkit-1/localauthority/50-local.d/restrict-login-powermgmt.pkla
機能として追加します。
[Disable lightdm PowerMgmt]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot;org.freedesktop.login1.reboot-multiple-sessions;org.freedesktop.login1.power-off;org.freedesktop.login1.power-off-multiple-sessions;org.freedesktop.login1.suspend;org.freedesktop.login1.suspend-multiple-sessions;org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no
さらに、このメソッドはGUIから発行されたreboot / etcコマンドのみをブロックすることに注意してください。コマンドラインからのリブート/ etcコマンドをブロックするには、molly-guardを使用することができます- ルートを含むすべてのユーザーのシャットダウンコマンドの無効化で説明されているように-結果?
molly-guardのインストールを検討してください。
sudo apt-get install molly-guard
このパッケージは、システムのホスト名を入力するようにインタラクティブにプロンプトを出すことにより、意図しないシャットダウン/リブート/サスペンド/休止状態を防ぎます。
ただし、シャットダウン/リブート/サスペンド/休止状態を完全に無効にするようにmolly-guardを構成するのは簡単です。/etc/molly-guard/run.d/99-prevent-allに、これを含む実行可能ファイルを作成するだけです:
#!/bin/sh
exit 1
コマンドラインから発行されたコマンドに対してのみ保護し、GUIから発行されたshutdown / reboot / suspend / hibernateはそれをバイパスしていることに注意してください。再起動を使用してGUIもブロックするには、polkitルールを使用できます。
警告! ここにリストされているコマンドは使用するのが危険です。あなた自身のリスク以外でこれらを使用しないでください!
chmod -x /usr/sbin/pm-suspend
chmod -x /sbin/reboot
chmod -x /sbin/shutdown
/bin/systemctl
し、そこから実行可能なビットを削除します。これは、を制御する重要な実行可能ファイルservice SERVICE_NAME [stop|start|restart]
です。システムはおそらくもう起動しません(システムをまったくシャットダウンできない場合)。
/bin/systemctl
が読み取り専用に設定された後-rw-r--r-- 1 root root
shutdown
やpm-suspend
から/sbin/
と/bin/