Come posso configurare dbus per consentire a ssh-user di sospendere il server?


9

Provo a sospendere il mio server usando dbus e UPower. Il server esegue Ubuntu LucidLynx 64 bit.

Mentre tutto funziona bene se sono seduto direttamente alla macchina, non funzionerà tramite SSH. Se mi connetto al server tramite ssh e provo a sospendere la macchina usando dbus e upower, si restituisce

dbus.exceptions.DBusException: org.freedesktop.UPower.GeneralError: non autorizzato

Qualcuno potrebbe dirmi come configurare dbus per consentire agli utenti ssh di sospendere la macchina?


btw: Faccio grep e uso l'attuale indirizzo di sessione
dbus

2
Puoi fornire alcuni dettagli sul metodo che stai utilizzando? Quale riga di comando, strumenti, ecc.
Kees Cook,

Risposte:


12

Esistono due modi di base per eseguire questa operazione e una soluzione alternativa:

O è necessario modificare /usr/share/polkit-1/actions/org.freedesktop.upower.policy, impostare la XDG_SESSION_COOKIEvariabile di ambiente sul valore appropriato o utilizzare pm-suspend:

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

Applica questa 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>

(Al <action id="org.freedesktop.upower.suspend">tag / sezione), e funzionerà anche ...

o

XDG_SESSION_COOKIE

Quando usi il desktop, vedrai che $XDG_SESSION_COOKIEha un valore, ma in una sessione ssh ne ha un altro. Conservare XDG_SESSION_COOKIEad es. In un file .dot o qualcosa all'avvio del desktop e crearlo nel proprio script che deve essere eseguito su ssh.

pm-suspend

Oppure potresti semplicemente rinunciare a farlo con dbuse UPowered emettere semplicemente pm-suspendcome root e farcela! :-)


1
+1 per "emetti pm-suspend come root e falla finita!" - disponibile dal pacchetto pm-utils.
Bjoern Dahlgren,

5

I file sotto /usr/share/polkit-1/actionsnon sono pensati per essere modificati.

Crea un file chiamato /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

C'è un errore di battitura nella risposta - l'ultima riga dovrebbe dire di ResultAnyno AllowAny.
Emil Styrke,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.