[Bug 483130] Re: If 'startx' is run from within a text console, ConsoleKit session is not marked 'active'
Psy[H[]
483130 at bugs.launchpad.net
Fri Sep 9 07:46:39 UTC 2011
** Attachment added: "ck-list-session from X, afret startx from console with fixed /etc/pam.d/common-session"
https://bugs.launchpad.net/ubuntu/+source/consolekit/+bug/483130/+attachment/2375530/+files/ck-l-s_x_with_fix.txt
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to consolekit in Ubuntu.
https://bugs.launchpad.net/bugs/483130
Title:
If 'startx' is run from within a text console, ConsoleKit session is
not marked 'active'
Status in “consolekit” package in Ubuntu:
Confirmed
Bug description:
Binary package hint: consolekit
Using consolekit 0.3.1-0ubuntu2 in Karmic.
If I login to a text console, a ConsoleKit session is created for that terminal. If I then run 'startx' (if I'm not running GDM, or 'startx :1' if I am running GDM), I do not have my normal permissions, because my session is not marked 'active', because my session has not been populated with the appropriate X device information. Running 'ck-list-sessions' from within X shows:
Session1:
unix-user = '1000'
realname = 'Paul Donohue'
seat = 'Seat1'
session-type = ''
active = FALSE
x11-display = ''
x11-display-device = ''
display-device = '/dev/tty2'
remote-host-name = ''
is-local = TRUE
on-since = '2009-11-14T22:10:24.941984Z'
login-session-id = '4294967295'
idle-since-hint = '2009-11-14T22:10:55.016849Z'
I expect to have the same permissions whether I login via GDM, or
login via a text console, then run 'startx'.
I believe the simplest solution is to replace the current
/etc/X11/Xsession.d/90consolekit with something like the following:
CK_GET_X11_DISPLAY_DEVICE=/usr/lib/ConsoleKit/ck-get-x11-display-device
CK_LIST_SESSIONS=/usr/bin/ck-list-sessions
CK_LAUNCH_SESSION=/usr/bin/ck-launch-session
if [ -x "$CK_GET_X11_DISPLAY_DEVICE" -a -x "$CK_LIST_SESSIONS" -a -x "$CK_LAUNCH_SESSION" ] ; then
if [ "$($CK_LIST_SESSIONS | grep "$($CK_GET_X11_DISPLAY_DEVICE)")" == "" ] ; then
STARTUP="$CK_LAUNCH_SESSION $STARTUP"
fi
fi
This script checks for an existing CK session that is populated with
an appropriate x11-display-device, and if one is not present, it
creates a new session. This will prevent a duplicate CK session from
being created when logging in via GDM (which already creates an
appropriately populated CK session), but allows an additional CK
session to be created when 'startx' is run from a text console (with a
CK session that is not appropriately populated).
Using this script, I get my expected permissions, and 'ck-list-sessions' shows:
Session1:
unix-user = '1000'
realname = 'Paul Donohue'
seat = 'Seat1'
session-type = ''
active = FALSE
x11-display = ''
x11-display-device = ''
display-device = '/dev/tty2'
remote-host-name = ''
is-local = TRUE
on-since = '2009-11-14T22:10:24.941984Z'
login-session-id = '4294967295'
idle-since-hint = '2009-11-14T22:10:55.016849Z'
Session2:
unix-user = '1000'
realname = 'Paul Donohue'
seat = 'Seat1'
session-type = ''
active = TRUE
x11-display = ':1'
x11-display-device = '/dev/tty8'
display-device = '/dev/tty2'
remote-host-name = ''
is-local = TRUE
on-since = '2009-11-14T22:10:32.525471Z'
login-session-id = '4294967295'
Another (less trivial) solution would be to patch ck-launch-session to
allow updating the existing session with the appropriate X display
information, then always run ck-launch-session from 90consolekit to
perform this update. (See Bug #319396)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/consolekit/+bug/483130/+subscriptions
More information about the foundations-bugs
mailing list