Eu tento suspender meu servidor usando dbus e UPower. O servidor executa o Ubuntu LucidLynx 64bit.
Embora tudo funcione bem se eu estiver sentado diretamente na máquina, ele não funcionará via ssh. Se eu conectar ao servidor via ssh e tentar suspender a máquina usando dbus e upower, ele retornará
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 ssh suspendam a máquina?
Respostas:
Há duas maneiras básicas de fazer isso e uma solução alternativa:
Você precisa modificar
/usr/share/polkit-1/actions/org.freedesktop.upower.policy
, configurar aXDG_SESSION_COOKIE
variável de ambiente para o valor apropriado ou usarpm-suspend
:Modificando
/usr/share/polkit-1/actions/org.freedesktop.upower.policy
Aplique este patch:
(Para a
<action id="org.freedesktop.upower.suspend">
tag / seção), e também funcionará ...ou
XDG_SESSION_COOKIE
Ao usar a área de trabalho, você verá que
$XDG_SESSION_COOKIE
tem um valor, mas em uma sessão ssh, ele tem outro. Armazene,XDG_SESSION_COOKIE
por exemplo, em um arquivo .dotfile ou algo assim, quando a área de trabalho for iniciada, e obtenha-a no seu script, que precisa ser executada no ssh.pm-suspend
Ou você poderia simplesmente desistir de fazê-lo com
dbus
eUPower
e apenas questãopm-suspend
como root e acabar logo com isso! :-)fonte
Os arquivos abaixo
/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
fonte
ResultAny
, nãoAllowAny
.