Como posso configurar o dbus para permitir que o ssh-user suspenda o servidor?

8

Eu tento suspender meu servidor usando dbus e UPower. O servidor roda o Ubuntu LucidLynx 64bit.

Enquanto tudo funciona bem, se estou sentado diretamente na máquina, não funciona via ssh. Se eu me conectar ao servidor via ssh e tentar suspender a máquina usando dbus e up up, ele retorna

dbus.exceptions.DBusException: org.freedesktop.UPower.GeneralError: não autorizado

Alguém poderia me dizer como configurar o dbus para permitir que os usuários do ssh suspendam a máquina?

    
por Produnis 14.01.2011 / 22:42

2 respostas

12

Existem duas maneiras básicas para isso ser feito e uma solução alternativa:

Você precisa modificar /usr/share/polkit-1/actions/org.freedesktop.upower.policy , definir a variável de ambiente XDG_SESSION_COOKIE como o valor apropriado ou usar pm-suspend :

Modificando /usr/share/polkit-1/actions/org.freedesktop.upower.policy

Aplique este patch:

--- /usr/share/polkit-1/actions/org.freedesktop.upower.policy.orig  2011-11-16 19:06:59.274055248 +0100
+++ /usr/share/polkit-1/actions/org.freedesktop.upower.policy   2011-11-16 19:11:15.178864922 +0100
@@ -21,6 +21,7 @@
     <defaults>
       <allow_inactive>no</allow_inactive>
       <allow_active>yes</allow_active>
+      <allow_any>yes</allow_any>
     </defaults>
   </action>

(Para o <action id="org.freedesktop.upower.suspend"> tag / section), e também funcionará ...

ou

XDG_SESSION_COOKIE

Quando você estiver usando a área de trabalho, verá que $XDG_SESSION_COOKIE tem um valor, mas em uma sessão ssh, ele tem outro. Armazenar XDG_SESSION_COOKIE , por exemplo em um .dotfile ou algo assim quando a área de trabalho inicia e a fonte em seu script que precisa ser executada em ssh.

pm-suspend

Ou você pode simplesmente desistir de fazer isso com dbus e UPower e apenas emitir pm-suspend como root e acabar logo com isso! : -)

    
por Peter V. Mørch 16.11.2011 / 19:22
4

Os arquivos em /usr/share/polkit-1/actions não devem ser modificados.

Crie um arquivo chamado /etc/polkit-1/localauthority/50-local.d/allow_all_ssh-users_to_upower.pkla

[Allow all ssh-users to upower]
Identity=unix-group:ssh-users
Action=org.freedesktop.upower.policy
ResultInactive=no
ResultActive=yes
AllowAny=yes
    
por user1435828 24.05.2015 / 11:15

Tags