web-dev-qa-db-fra.com

désactive shutdown / suspend si un autre utilisateur est connecté via ssh

Je me souviens que dans les versions d'ubuntu autour de 9.04, il était possible de désactiver le système d'arrêt de l'utilisateur (et éventuellement de le suspendre aussi) s'il y avait un autre utilisateur connecté. Quelque chose comme policykit ou similaire.

Est-il possible de faire en 11.04?

Merci

modifier:

si quelqu'un a besoin (à ses risques et périls), peu de changements dans/usr/lib/pm-utils/bin/pm-action permettront à l'utilisateur de suspendre l'ordinateur s'il est uniquement connecté ou si l'utilisateur exécute Sudo pm-suspend. Probablement pas le meilleur morceau de code, mais pour l'instant ça marche.

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 question est toujours d'actualité, est-il possible d'interdire l'arrêt ou la suspension lorsqu'il y a plus d'un utilisateur connecté (sans réécrire pm-suspend ou stop (ou un autre piratage))??

15
Denwerko

Mise à jour (grâce à enzotib):

Les fichiers que j'ai énumérés dans la réponse d'origine doivent non être modifiés, car une mise à jour du paquet peut écraser vos modifications.

PolicyKit doit plutôt être configuré à l'aide de fichiers de configuration placés dans /var/lib/polkit-1/localauthority/, comme indiqué dans la page de manuel pklocalauthority.

Réponse originale:

Avec la dépréciation de HAL, ceci est maintenant contrôlé dans /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy

Définissez allow_active dans les deux sections d'action illustrées ci-dessous sur no (elles sont définies sur auth_admin_keep par défaut):

  <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