wyłącz zamykanie / zawieszanie, jeśli przez ssh zalogowany jest inny użytkownik

15

Pamiętam, że w wersjach ubuntu około 9.04 było możliwe wyłączenie użytkownika w celu zamknięcia systemu (a może nawet zawieszenia), jeśli zalogowany był inny użytkownik. Coś takiego jak policykit lub podobny.

Czy można to zrobić w 11.04?

Dzięki

edytować:

jeśli ktoś potrzebuje (na własne ryzyko), niewielka zmiana w / usr / lib / pm-utils / bin / pm-action pozwoli użytkownikowi zawiesić maszynę, jeśli jest on tylko zalogowany lub gdy uruchomi sudo pm-suspend. Prawdopodobnie nie najlepszy kawałek kodu, ale na razie działa.

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"

Pytanie wciąż pozostaje, czy można zabronić zamykania lub zawieszania, gdy zalogowany jest więcej niż jeden użytkownik (bez przepisywania PM-zawiesiny lub zatrzymania (lub innego włamania))?

Denwerko
źródło

Odpowiedzi:

1

Aktualizacja (dzięki enzotib):

Pliki wymienione w oryginalnej odpowiedzi nie powinny być edytowane, ponieważ aktualizacja pakietu może zastąpić zmiany.

Zamiast tego należy skonfigurować PolicyKit za pomocą umieszczonych w nim plików konfiguracyjnych /var/lib/polkit-1/localauthority/, jak opisano na pklocalauthoritystronie podręcznika.

Oryginalna odpowiedź:

Po wycofaniu HAL jest to teraz kontrolowane w /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy

Ustaw allow_activew dwóch sekcjach czynności pokazanych poniżej na no(są ustawione auth_admin_keepdomyślnie):

  <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>
scottl
źródło
1
Powinieneś ustawić swój plik zasad w jednym z /var/lib/polkit-1/localauthority/*.dkatalogów, jak wyjaśniono na pklocalauthoritystronie podręcznika. Unikaj modyfikowania plików instalowanych przez pakiety (as /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy), inne niż pliki konfiguracyjne /etc/.
enzotib
@scottl Czy możesz edytować swoją odpowiedź, aby czytać poprawnie? Jak czyta teraz, jest to całkowicie mylące.
Jorge Castro,