it-swarm.com.de

Deaktivieren Sie das Herunterfahren / Anhalten, wenn ein anderer Benutzer über ssh angemeldet ist

Ich erinnere mich, dass es in Ubuntu-Versionen um 9.04 möglich war, den Benutzer zu deaktivieren, um das System herunterzufahren (und möglicherweise auch auszusetzen), wenn ein anderer Benutzer angemeldet war.

Ist es möglich, in 11.04 zu tun?

Vielen Dank

bearbeiten:

wenn jemand dies benötigt (auf eigenes Risiko), können Benutzer den Computer durch kleine Änderungen in/usr/lib/pm-utils/bin/pm-action anhalten, wenn er nur als Benutzer angemeldet ist oder wenn der Benutzer Sudo pm-suspend ausführt. Wahrscheinlich nicht das beste Stück Code, aber für jetzt funktioniert.

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"

Die Frage bleibt bestehen, ist es möglich, das Herunterfahren oder Anhalten zu verbieten, wenn mehr als ein Benutzer angemeldet ist (ohne pm-suspend oder halt (oder einen anderen Hack) umzuschreiben)?

15
Denwerko

pdate (danke an enzotib):

Die Dateien, die ich in der ursprünglichen Antwort aufgelistet habe, sollten nicht bearbeitet werden, da ein Paketupdate Ihre Änderungen überschreiben kann.

PolicyKit sollte stattdessen mit Konfigurationsdateien konfiguriert werden, die in /var/lib/polkit-1/localauthority/ gespeichert sind, wie auf der Manualpage pklocalauthority beschrieben.

rsprüngliche Antwort:

Mit dem Verfall von HAL wird dies nun in /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy gesteuert.

Setzen Sie allow_active in den beiden unten gezeigten Aktionsabschnitten auf no (standardmäßig ist auth_admin_keep eingestellt):

  <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
scottl