Требовать пароль sudo для отключения на один сеанс

У меня есть компьютер под управлением Ubuntu, который используется несколькими людьми. Он тратит много времени на выключение. Иногда я хотел бы запустить его с помощью Wake-On-Lan, подключиться через ssh и запустить задание в фоновом режиме. Я не хочу, чтобы компьютер выключался во время выполнения этой работы.

Однако, поскольку есть несколько человек, которые могут использовать этот компьютер, кто-то может подойти к машине, войти в систему, проверить свою электронную почту или что-то еще, а затем выключить компьютер. Кроме того, кто-то может заметить, что он включен и показывает экран входа в систему GDM, и принять решение о его выключении.

Есть ли способ предотвратить это? Это не обязательно делает его абсолютно невозможным: просто заставляет компьютер всплывать в окне с надписью «Вы действительно уверены (задания выполняются в фоновом режиме)?» будет отлично Однако он должен работать как из меню Gnome после входа, так и с экрана GDM.

2
задан 16 December 2010 в 13:08

2 ответа

Можно отключить его и для 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>

Примечание: Вы не должны изменять последние два раздела (они влияют на перезапуск), но я принимаю, не хотите ли Вы кого-то закрывающего компьютер, Вы не хотите их перезапускающий его также.

Чтобы сделать это быстрее, Вы могли создать две версии этого файла (тот, который позволяет обычным пользователям закрывать компьютер, и тот, который не делает) где-нибудь в Вашем корневом каталоге и имеют сценарий, который копирует один из них к /usr/share/polkit-1/actions/.

2
ответ дан 16 December 2010 в 13:08

Для gdm я думаю, что есть способ отключить управление системой, но я не знаю как. Для гнома вы можете сделать лаунчер с коммандой "gksudo halt". Он спросит пароль, если вы хотите выключить компьютер.

0
ответ дан 16 December 2010 в 13:08

Другие вопросы по тегам:

Похожие вопросы: