[Bug 476811] Re: Network users with longer than 8 character usernames do not show up in user list (possible fix included)

Martin Pitt martin.pitt at ubuntu.com
Fri Feb 24 10:08:04 UTC 2012


lucid SRU sponsored. Needs ubuntu-sru review now. Thanks!

** Changed in: consolekit (Ubuntu Lucid)
       Status: New => Fix Committed

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/476811

Title:
  Network users with longer than 8 character usernames do not show up in
  user list (possible fix included)

Status in GDM: The Gnome Display Manager:
  Unknown
Status in “consolekit” package in Ubuntu:
  Fix Committed
Status in “consolekit” source package in Lucid:
  Fix Committed
Status in “consolekit” package in Debian:
  New

Bug description:
  Binary package hint: gdm

  First, some details:

  GDM Version:  2.28.1-0ubuntu1
  Output of:  lsb_release -rd
  Description:	Ubuntu 9.10
  Release:	9.10

  Also (suspected) involved:
  consolekit version:  0.3.1-0ubuntu2

  Related:
  likewise-open5 version:  5.0.3991.1+krb5-0ubuntu2

  
  Problem:

  I am running two installations of Karmic with authentication against
  an Active Directory server using Likewise Open version 5.  As
  expected, all local users show up in the face browser user list.
  Additionally, all recent AD users with user names shorter than 8
  characters show up in the face browser list as well.  The only recent
  network users absent from the face browser user list are Active
  Directory users with longer user names.

  According to the GDM 2.28 documentation
  (http://library.gnome.org/admin/gdm/2.28/gdm.html -> see section on
  /apps/gdm/simple-greeter/include_all), by Default:

  "The Face Browser also will display any users that have previously
  logged in on the system (for example NIS/LDAP users). It gets this
  list via calling the ck-history ConsoleKit interface."

  This actually seems to work for all of the users who use this system
  with user names equal to or shorter than 8 characters, but it fails if
  a user's login name is greater than 8 charcters, and I am pretty sure
  I know why (I just don't know how to fix it).

  First, two pieces of evidence.  Examining the gdm greeter log file
  (:0-greeter.log), I find the following warnings repeated over and
  over:

  gdm-simple-greeter[2534]: WARNING: Unable to lookup user name xxxxxxxx: Success
  gdm-simple-greeter[2534]: WARNING: Unable to lookup user name yyyyyyyy: Success

  Note:  I have replaced the actual user names with xxxx's and yyyy's

  Each of these are truncated user names (truncated to 8 characters).
  The first is my own login, from Active Directory.  The second is a
  local user with a longer than 8 character name.  It should be noted
  that, regardless of the warning, the local user still shows up in the
  user list (this is likely because GDM uses a different mechanism,
  fgetpwent(), to populate the list with local users), but the network
  user does not.

  As stated in the excerpt above, GDM uses ck-history to populate
  network users, so I thought it might be prudent to examine the output
  of the ck-history command.  I ran the following command, and
  discovered the problem:

  $ck-history --frequent

  The command returned the expected list of recent users, and all of the
  user names longer than 8 characters WERE truncated.

  So, if GDM is just running this command, and parsing the output, it is
  receiving invalid user names (hence the log file warning, and missing
  users).

  In addition, the problem seems to be a "printing" problem only.  If I
  use ck-history against a particular user name (with the -u or --user
  commands), it expects the full username, not the truncated one.  So,
  it is not internally truncating user names, only printing them that
  way.  I suspect that (if ck is written in C), it is just a mistake
  with a printf, or some such, only allowing for an 8 character field.

  
  (Obvious) Potential Solutions:
  If my suspicion is correct, and GDM is only parsing the output of the "ck-history --frequent" command, it would seem that the simplest solution would be to use ConsoleKit's API directly (assuming it contains a "history" and "frequent users" mechanism).  Or, it might be better to fix ck-history so that it does not truncate user names when printing them.

To manage notifications about this bug go to:
https://bugs.launchpad.net/gdm/+bug/476811/+subscriptions



More information about the Ubuntu-sponsors mailing list