Ich habe ein Live-Debian-Squeeze-System auf einem USB-Laufwerk, das ein Skript enthält, mit dem ich ein Image eines anderen Laufwerks verwende. Dieses Skript dient udisks
zum Mounten eines Laufwerks nach Label, funktioniert jedoch nicht über eine serielle Konsole. Der Grund dafür ist, dass die der seriellen Konsole zugeordnete Sitzung nicht "aktiv" zu sein scheint. Dies bedeutet, dass udisks
Folgendes fehlschlägt:
user@my-live-usb:~$ udisks --mount /dev/disk/by-label/image-data --mount-options ro
Mount failed: Not Authorized
Das Ändern des allow_any
Schlüssels /usr/share/polkit-1/actions/org.freedesktop.udisks.policy
hilft nicht, daher möchte ich wissen, wie ConsoleKit mitgeteilt wird, dass die serielle Konsole "aktiv" ist. Der Versuch, dies über die DBUS-Schnittstelle zu tun, schlägt fehl:
user@my-live-usb:~$ dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Session7 org.freedesktop.ConsoleKit.Session.Activate
Error org.freedesktop.DBus.GLib.UnmappedError.CkSeatError.Code0: Unable to activate session
Session7 ist diejenige, die als / dev / ttyS0 aufgeführt ist.
Wie kann ich ConsoleKit dazu bringen, die serielle Konsole als aktive Sitzung zu erkennen?
(In meinem Fall ist die udisks-Version 1.0.1 + git20100614-3, consolekit ist 0.4.1-4.)
Es ist wahrscheinlich auch erwähnenswert, dass das Debian-Live-System den Live-Benutzer automatisch auf allen 6 Videokonsolen und der seriellen Konsole anmeldet.
quelle
ck-launch-session bash
und ausführeck-list-sessions
, hat die Konsole noch Zeitactive = FALSE
für diese Sitzung.ck-launch-session bash -c 'pkexec true'
. Wenn es keine Ausgabe gibt, funktioniert es. Wenn Sie sehen (wie ich)Error executing command as another user: Not authorized
, tut es nicht.Ich hatte ein Problem mit der Sitzung, wo
is-local
undactive
warFALSE
./bin/login
wird verwendetpam_ck_connector
, um eine ordnungsgemäße Sitzung durchzuführen. Dann habe ich xinit mitck-launch-session openbox
in ausgeführt~/.xinitrc
. Die zweite Sitzung war unterbrochen.Die Lösung besteht NICHT darin
ck-launch-session
, xinit auszuführen, sondern auf demselben virtuellen Terminal zu bleiben und die vorhandene erste lokale Sitzung aktiv zu halten:XINITRC=/path_to_custom/xinitrc xinit -- :1 vt1
quelle