[Bug 483130] Re: If 'startx' is run from within a text console, ConsoleKit session is not marked 'active'

Peter Schneider 483130 at bugs.launchpad.net
Wed Jun 6 12:47:59 UTC 2012


that last fix works great for me on precise. thank you

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