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

Paul Donohue launchpad at PaulSD.com
Thu Sep 8 14:37:11 UTC 2011


This seems to work fine for me under natty (I did an upgrade from
maverick, not a fresh install).

$ ck-list-sessions 
Session1:
        unix-user = '1000'
        realname = 'Paul Donohue'
        seat = 'Seat1'
        session-type = ''
        active = FALSE
        x11-display = ''
        x11-display-device = ''
        display-device = '/dev/tty1'
        remote-host-name = ''
        is-local = TRUE
        on-since = '2011-09-08T13:41:34.171550Z'
        login-session-id = '4294967295'
        idle-since-hint = '2011-09-08T13:42:04.326562Z'
Session2:
        unix-user = '1000'
        realname = 'Paul Donohue'
        seat = 'Seat1'
        session-type = ''
        active = TRUE
        x11-display = ':0'
        x11-display-device = '/dev/tty7'
        display-device = '/dev/tty1'
        remote-host-name = ''
        is-local = TRUE
        on-since = '2011-09-08T13:41:45.813003Z'
        login-session-id = '4294967295'
$

My /etc/pam.d/common-session does not contain pam_loginuid:
/etc/pam.d$ grep -v '^#' common-session

session [default=1]                     pam_permit.so
session requisite                       pam_deny.so
session required                        pam_permit.so
session required        pam_unix.so 
session optional                        pam_ck_connector.so nox11
/etc/pam.d$

What does ck-list-sessions show for you after logging in on the terminal
(before running startx), and after running startx?

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