1 回のセッションのシャットダウンに sudo パスワードを要求する

1 回のセッションのシャットダウンに sudo パスワードを要求する

複数の人が使用している Ubuntu 搭載のコンピューターがあります。コンピューターは長時間電源がオフになっています。時々、Wake-On-Lan を使用してコンピューターを起動し、ssh 経由で接続してバックグラウンドでジョブを開始したいことがあります。このジョブの実行中に PC がシャットダウンしないようにしたいのです。

ただし、この PC を使用する人は複数いる可能性があるため、誰かがマシンに近づき、ログインしてメールなどをチェックした後、PC をシャットダウンする可能性があります。あるいは、PC の電源がオンになっていて GDM ログイン画面が表示されていることに誰かが気付き、シャットダウンすることを決める可能性もあります。

これを防ぐ方法はありますか? 完全に不可能にする必要はありません。コンピューターに「(ジョブはバックグラウンドで実行されています) 本当によろしいですか?」というウィンドウをポップアップ表示させるだけで十分です。ただし、ログイン後の Gnome メニューからも GDM 画面からも機能する必要があります。

答え1

GDM とログイン時のメニューから両方無効にすることができます。

編集して/usr/share/polkit-1/actions/org.freedesktop.consolekit.policy、どこに書いてあるか

<allow_active>yes</allow_active>

それを次のように変更する

<allow_active>auth_admin_keep</allow_active>

ファイルは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1.0/policyconfig.dtd">

<!--
Policy definitions for ConsoleKit
-->

<policyconfig>

  <action id="org.freedesktop.consolekit.system.stop">
    <description>Stop the system</description>
    <message>System policy prevents stopping the system</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>no</allow_active>
    </defaults>
  </action>

  <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">
    <description>Restart the system</description>
    <message>System policy prevents restarting the system</message>
    <defaults>
      <allow_inactive>no</allow_inactive>
      <allow_active>yes</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>yes</allow_active>
    </defaults>
  </action>

</policyconfig>

注記:あなたはしない持っている最後の2つのセクションを変更する(再起動に影響します)しかし、誰かにコンピューターをシャットダウンしてほしくないのであれば、再起動もしてほしくないはずです。

これをより速く行うには、このファイルの2つのバージョンを作成します。(通常のユーザーがコンピューターをシャットダウンできるものと、できないもの)ホームディレクトリのどこかに、そのうちの 1 つを にコピーするスクリプトを用意します /usr/share/polkit-1/actions/

答え2

gdm の場合、システム コントロールを無効にする方法があると思いますが、方法がわかりません。gnome の場合、コマンド「gksudo halt」を使用してランチャーを作成できます。コンピューターをシャットダウンする場合は、パスワードが要求されます。

関連情報