відключити відключення / призупинення, якщо інший користувач увійшов через ssh


15

Я пам’ятаю, що у версіях 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-призупинення чи зупинення (або іншого злому))?

Відповіді:


1

Оновлення (завдяки enzotib):

Файли, перелічені в оригінальній відповіді, не слід редагувати, оскільки оновлення пакета може замінити ваші зміни.

Натомість PolicyKit слід налаштовувати за допомогою файлів конфігурації, розміщених у них /var/lib/polkit-1/localauthority/, як це детально описано на pklocalauthorityсторінці керівництва.

Оригінальна відповідь:

З припиненням HAL це зараз контролюється в Росії /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy

Встановити 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>

1
Ви повинні встановити файл політики в одному зі своїх /var/lib/polkit-1/localauthority/*.dкаталогів, як це пояснено на pklocalauthorityсторінці керівництва. Уникайте змін у файлах, встановлених пакетами (як /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy), іншими файлами конфігурації /etc/.
enzotib

@scottl Чи можете ви відредагувати свою відповідь, щоб прочитати правильно? Як читається зараз, це зовсім заплутано.
Хорхе Кастро
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.