disabilitare lo spegnimento / sospensione se c'è un altro utente connesso tramite ssh


15

Ricordo che nelle versioni di Ubuntu intorno al 9.04 era possibile disabilitare il sistema di spegnimento (e forse anche di sospensione) dell'utente se ci fosse un altro utente che ha effettuato l'accesso. Qualcosa come policykit o simili.

È possibile farlo in 11.04?

Grazie

modificare:

se qualcuno ha bisogno (per il proprio rischio), poche modifiche in / usr / lib / pm-utils / bin / pm-action consentiranno all'utente di sospendere la macchina se è solo l'utente connesso o quando l'utente eseguirà sudo pm-suspend. Probabilmente non il miglior pezzo di codice, ma per ora funziona.

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 domanda è ancora valida, è possibile vietare l'arresto o la sospensione quando vi è più di un utente connesso (senza riscrivere pm-suspend o halt (o altro hack))?

Risposte:


1

Aggiornamento (grazie a enzotib):

I file che ho elencato nella risposta originale non devono essere modificati, poiché un aggiornamento del pacchetto può sovrascrivere le modifiche.

PolicyKit dovrebbe invece essere configurato utilizzando i file di configurazione inseriti /var/lib/polkit-1/localauthority/, come dettagliato nella pklocalauthoritypagina del manuale.

Risposta originale:

Con la deprecazione di HAL, questo è ora controllato in /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy

Impostato allow_activenelle due sezioni di azione mostrate di seguito su no(sono impostati di auth_admin_keepdefault):

  <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
È necessario impostare il file delle politiche in una delle /var/lib/polkit-1/localauthority/*.ddirectory, come spiegato nella pklocalauthoritypagina del manuale. Evita di modificare i file installati dai pacchetti (as /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy), tranne i file di configurazione in /etc/.
enzotib,

@scottl Puoi modificare la tua risposta per leggerla correttamente? Come si legge ora è totalmente confuso.
Jorge Castro
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.