desativa o shutdown / suspend se houver outro usuário logado via ssh

13

lembro que nas versões do ubuntu em torno de 9.04 era possível desabilitar o usuário ao shutdown (e talvez suspender também) do sistema caso houvesse outro usuário logado. Algo como policykit ou similar.

É possível fazer em 11.04?

Obrigado

editar:

se alguém precisar (por risco próprio), poucas mudanças em / usr / lib / pm-utils / bin / pm-action permitirão que o usuário suspenda a máquina se ele for o único usuário logado ou quando o usuário executar o sudo pm- suspender. Provavelmente não é o melhor trecho de código, mas por enquanto funciona.

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"

A questão ainda permanece, é possível proibir o desligamento ou suspender quando houver mais de um usuário logado (sem reescrever o pm-suspend ou o halt (ou outro hack))?

    
por Denwerko 29.06.2011 / 21:42

1 resposta

1

Atualização (graças a enzotib):

Os arquivos listados na resposta original devem ser não editados, pois uma atualização de pacote pode substituir suas alterações.

O PolicyKit deve ser configurado usando os arquivos de configuração colocados em /var/lib/polkit-1/localauthority/ , conforme detalhado na página de manual pklocalauthority .

Resposta original:

Com a suspensão de HAL, isso agora é controlado em /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy

Defina allow_active nas duas seções de ação mostradas abaixo como no (elas são definidas como auth_admin_keep por padrão):

  <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>
    
por scottl 26.07.2011 / 09:25