deshabilite el apagado / suspensión si hay otro usuario conectado a través de ssh

15

Recuerdo que en las versiones de ubuntu alrededor de 9.04 era posible deshabilitar al usuario para apagar (y tal vez suspender también) el sistema si había otro usuario conectado. Algo así como el juego de políticas o similar.

¿Es posible hacerlo en 11.04?

Gracias

editar:

si alguien lo necesita (por su propio riesgo), un pequeño cambio en / usr / lib / pm-utils / bin / pm-action permitirá al usuario suspender la máquina si solo ha iniciado sesión o cuando el usuario ejecutará sudo pm-suspend. Probablemente no sea la mejor pieza de código, pero por ahora funciona.

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"

La pregunta sigue en pie, ¿es posible prohibir el apagado o la suspensión cuando hay más de un usuario conectado (sin reescribir pm-suspend o halt (u otro hack))?

Denwerko
fuente

Respuestas:

1

Actualización (gracias a enzotib):

Los archivos que enumeré en la respuesta original no deben editarse, ya que una actualización del paquete puede sobrescribir sus cambios.

En su lugar, PolicyKit debe configurarse utilizando archivos de configuración ubicados /var/lib/polkit-1/localauthority/, como se detalla en la pklocalauthoritypágina del manual.

Respuesta original:

Con la depreciación de HAL, esto ahora se controla en /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy

Establezca allow_activeen las dos secciones de acción que se muestran a continuación a no(están configuradas auth_admin_keepde forma predeterminada):

  <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
fuente
1
Debe configurar su archivo de políticas en uno de sus /var/lib/polkit-1/localauthority/*.ddirectorios, como se explica en pklocalauthorityla página del manual. Evite modificar archivos instalados por paquetes (as /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy), que no sean archivos de configuración /etc/.
enzotib
@scottl ¿Puedes editar tu respuesta para leer correctamente? Como se lee ahora, es totalmente confuso.
Jorge Castro