désactiver l'arrêt / la suspension s'il y a un autre utilisateur connecté via ssh

15

Je me souviens que dans les versions d'ubuntu vers 9.04, il était possible de désactiver l'utilisateur pour arrêter (et peut-être aussi suspendre) le système s'il y avait un autre utilisateur connecté, quelque chose comme policykit ou similaire.

Est-il possible de faire en 11.04?

Merci

Éditer:

si quelqu'un a besoin (pour ses propres risques), peu de changement dans / usr / lib / pm-utils / bin / pm-action permettra à l'utilisateur de suspendre la machine s'il n'est que l'utilisateur connecté ou lorsque l'utilisateur exécutera 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 se pose toujours, 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 autre hack))?

Denwerko
la source

Réponses:

1

Mise à jour (grâce à enzotib):

Les fichiers que j'ai répertoriés dans la réponse d'origine ne doivent pas être modifiés, car une mise à jour du package peut remplacer vos modifications.

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

Réponse originale:

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

Définissez allow_activedans les deux sections d'action ci-dessous no(elles sont définies auth_admin_keeppar 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>
Scott
la source
1
Vous devez définir votre fichier de stratégie dans l'un de vos /var/lib/polkit-1/localauthority/*.drépertoires, comme expliqué dans pklocalauthorityla page de manuel. Évitez de modifier les fichiers installés par les packages (as /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy), autres que les fichiers de configuration /etc/.
enzotib
@scottl Pouvez-vous modifier votre réponse pour lire correctement? Comme il se lit maintenant, c'est totalement déroutant.
Jorge Castro