私は、ubuntuのバージョン9.04で、他のユーザーがログインしている場合、ユーザーがシステムをシャットダウン(および多分サスペンド)することを無効にすることが可能であったことを思い出します。policykitなどのようなもの。
11.04で行うことは可能ですか?
ありがとう
編集:
誰かが(自分のリスクのため)必要な場合、/ usr/lib/pm-utils/bin/pm-actionを少し変更するだけで、ユーザーがログインしているだけの場合、またはユーザーがSudo pm-suspendを実行するときにマシンを一時停止できます。おそらく最良のコードではありませんが、今のところは動作します。
diff -r 805887c5c0f6 pm-action
--- a/pm-action Wed Jun 29 23:32:01 2011 +0200
+++ b/pm-action Wed Jun 29 23:37:23 2011 +0200
@@ -47,6 +47,14 @@
exit 1
fi
+if [ "$(id -u )" == 0 -o `w -h | cut -f 1 -d " " | sort | uniq | wc -l` -eq 1 ]; then
+ echo "either youre root or root isnt here and youre only user, continuing" 1>&2
+ else
+ echo "Not suspending, root is here or there is more users" 1>&2
+ exit 2
+ fi
+
+
remove_suspend_lock()
{
release_lock "${STASHNAME}.lock"
質問はまだありますが、複数のユーザーがログインしているときにシャットダウンまたはサスペンドを禁止することは可能ですか(pm-suspendまたはhalt(または他のハック)を書き換えることなく)?
更新(enzotibに感謝):
パッケージの更新により変更が上書きされる可能性があるため、元の回答にリストしたファイルはnotで編集する必要があります。
代わりに、pklocalauthority
マニュアルページで説明されているように、/var/lib/polkit-1/localauthority/
に配置された構成ファイルを使用してPolicyKitを構成する必要があります。
元の回答:
HALの廃止により、これは/usr/share/polkit-1/actions/org.freedesktop.consolekit.policy
で制御されるようになりました
以下に示す2つのアクションセクションのallow_active
をno
に設定します(デフォルトではauth_admin_keep
に設定されています)。
<action id="org.freedesktop.consolekit.system.stop-multiple-users">
<description>Stop the system when multiple users are logged in</description>
<message>System policy prevents stopping the system when other users are logged in</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>no</allow_active>
</defaults>
</action>
...
<action id="org.freedesktop.consolekit.system.restart-multiple-users">
<description>Restart the system when multiple users are logged in</description>
<message>System policy prevents restarting the system when other users are logged in</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>no</allow_active>
</defaults>
</action>