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))?

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>

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.