Question désactiver l'arrêt / suspension s'il y a un autre utilisateur 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 utilisateur (et peut-être de suspendre également) 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 (pour son propre risque), peu de changements dans / usr / lib / pm-utils / bin / pm-action permettront à l'utilisateur de suspendre la machine s'il est uniquement connecté ou si l'utilisateur exécutera sudo pm-suspend. Probablement pas le meilleur morceau de code, mais pour le moment fonctionne.

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 stopper (ou autre piratage))? 


13
2018-06-29 19:42


origine




Réponses:


Mettre à jour (grâce à enzotib):

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

PolicyKit devrait plutôt être configuré en utilisant des fichiers de configuration placés dans /var/lib/polkit-1/localauthority/, comme détaillé dans le pklocalauthority page de manuel.

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

Ensemble allow_active dans les deux sections d'action ci-dessous pour no (ils sont réglés 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
2017-07-26 07:25



Vous devez définir votre fichier de politique dans l'un de vos /var/lib/polkit-1/localauthority/*.d répertoires, comme expliqué dans pklocalauthority page de manuel. Evitez de modifier les fichiers installés par les packages (comme /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy), autres que les fichiers de configuration dans /etc/. - enzotib
@scottl Pouvez-vous modifier votre réponse pour lire correctement? Comme il se lit maintenant, c'est complètement déroutant. - Jorge Castro