web-dev-qa-db-ja.com

特定のユーザーのシャットダウン、サスペンドなどを防ぐ最も「Ubuntu」の方法は何ですか?

従来のUnixシステムでは、非ルートユーザーはこれを行うことができません。現代のデスクトップ環境でユーザーにこの機能を提供するのは何ですか?ユーザーごとまたはグループごとにこれを無効にするにはどうすればよいですか?

私は anybody のシャットダウン/サスペンドを防ぐ素晴らしい方法を見てきましたが、理想的には私が探しているのは特定のユーザーが(特定のユーザーグループに追加/削除するなどして)シャットダウン、再起動、一時停止を実行できないようにします。

20
thomasrutter

他の質問で述べたように、PolicyKitのローカル機関システムを介してこれらのアクションを制御できます。

次のような内容のファイル/etc/polkit-1/50-local.d/restrict-shutdown.pklaを作成する場合:

[Disable shutdown/etc for group restricted]
Identity=unix-group:restricted
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

これにより、グループrestrictedのメンバーが一致アクションを実行できなくなります。または、個々のユーザーを制限する場合は、unix-group:restrictedunix-user:user1;unix-user:user2;...に置き換えます。このポリシーに一致しないユーザーは、デフォルトの動作になります。

20

このファイルをルートとして作成および編集します。

/etc/polkit-1/localauthority/50-local.d/power-management.pkla

以下をコピーして貼り付けます。

[Disable shutdown/restart for users jim jane]
Identity=unix-user:jim;unix-user:jane
Action=org.freedesktop.login1.reboot;org.freedesktop.login1.reboot-multiple-sessions;org.freedesktop.login1.power-off;org.freedesktop.login1.power-off-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no

[Disable suspend/hibernate for users jim jane]
Identity=unix-user:a;unix-user:vvpinker
Action=org.freedesktop.login1.suspend;org.freedesktop.login1.suspend-multiple-sessions;org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=no
ResultInactive=no
ResultActive=no
0
Sepero