Ich versuche, meinen Server mit dbus und UPower anzuhalten. Auf dem Server wird Ubuntu LucidLynx 64bit ausgeführt.
Während alles gut funktioniert, wenn ich direkt an der Maschine sitze, funktioniert es nicht über ssh. Wenn ich über ssh eine Verbindung zum Server herstelle und versuche, den Computer mit dbus und upower anzuhalten, gibt er etwas zurück
dbus.exceptions.DBusException: org.freedesktop.UPower.GeneralError: nicht autorisiert
Könnte mir bitte jemand sagen, wie man dbus konfiguriert, damit ssh-Benutzer den Computer anhalten können?
Antworten:
Es gibt zwei grundlegende Möglichkeiten und eine Problemumgehung:
Entweder müssen Sie Änderungen vornehmen
/usr/share/polkit-1/actions/org.freedesktop.upower.policy
, dieXDG_SESSION_COOKIE
Umgebungsvariable auf den entsprechenden Wert setzen oder Folgendes verwendenpm-suspend
:Ändern
/usr/share/polkit-1/actions/org.freedesktop.upower.policy
Wende diesen Patch an:
(Zum
<action id="org.freedesktop.upower.suspend">
Tag / Abschnitt), und es wird auch funktionieren ...oder
XDG_SESSION_COOKIE
Wenn Sie den Desktop verwenden, sehen Sie, dass
$XDG_SESSION_COOKIE
dieser einen Wert hat, in einer SSH-Sitzung jedoch einen anderen. Speichern SieXDG_SESSION_COOKIE
zB in einer .dot-Datei oder etwas anderem, wenn der Desktop gestartet wird, und geben Sie es in Ihrem Skript ein, das dies über ssh ausführen muss.pm-suspend
Oder Sie könnten nur aufgeben , es mit zu tun
dbus
undUPower
und nur Ausgabepm-suspend
als root und bekommen es über mit! :-)quelle
Dateien unter
/usr/share/polkit-1/actions
sollen nicht geändert werden.Erstellen Sie eine Datei mit dem Namen
/etc/polkit-1/localauthority/50-local.d/allow_all_ssh-users_to_upower.pkla
quelle
ResultAny
nicht stehenAllowAny
.