Bug 117977

Summary: Cannot login with 32-bit UID's
Product: [openSUSE] SUSE LINUX 10.0 Reporter: Charl Möller <cwmoller>
Component: X.OrgAssignee: Stefan Dirsch <sndirsch>
Status: RESOLVED FIXED QA Contact: Stefan Dirsch <sndirsch>
Severity: Normal    
Priority: P3 - Medium CC: eich, kukuk, werner
Version: unspecified   
Target Milestone: ---   
Hardware: 32bit   
OS: Novell Linux Desktop 9 SP2   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Charl Möller 2005-09-20 11:18:24 UTC
The following have to be true:

1 - you have a 32-bit UID ( values greater than 65536 )
2 - you want to create a new X session

In /etc/X11/Xstartup you have to change the line containing 'sessreg'. Adding '-
L none' before the '-U $user' will enable login.

It seems that sessreg does not correctly write the lastlog entry for 32-bit 
UID's. Adding the '-L none' disables it's attempt to write this entry.
Comment 1 Stefan Dirsch 2005-09-20 13:24:17 UTC
This looks more like an ugly workaround than a fix. Thorsten, do we meanwhile 
support 32bit UIDs? IIRC we discussed this issue (in the dist meeting) and the 
conclusion was, that we simply does not support it (yet). But this is some 
years ago and things might have changed ... 
Comment 2 Thorsten Kukuk 2005-09-20 13:58:33 UTC
We discussed if we should support unsigned int or only signed int for
UID. The kernel uses unsigned int, most of our applications works with
unsigned int UIDs, too.
Comment 3 Thorsten Kukuk 2005-09-20 13:59:07 UTC
signed int UIDs should work, unsigned int UIDs would be fine.
Comment 4 Stefan Dirsch 2005-09-20 14:19:49 UTC
Ok. From this point of view sessreg looks broken. :-( 
Comment 5 Stefan Dirsch 2006-09-01 05:27:08 UTC
Could you check this issue with openSUSE >= Alpha3 again?
Comment 6 Charl Möller 2006-09-01 06:05:09 UTC
(In reply to comment #5)
> Could you check this issue with openSUSE >= Alpha3 again?

Unfortunately I can't. I am in South Africa, and bandwidth to download Alpha versions of distros is simply not available.

The bug is very easy to reproduce:
1. Create a new user with a UID 8 digits long (12345678)
2. Log in to X

If login succeeds, the bug is fixed, else the X session dies and you are returned to the login manager.
Comment 7 Stefan Dirsch 2006-09-01 08:20:23 UTC
Looks like this has been fixed meanwhile (tested with openSUSE 10.2 Alpha3). 
I created a new user with UID 12345678 and could log in without any problems.

But the sessreg call in /etc/X11/xdm/Xstartup seems to differ from what you described in comment #1, but didn't change since 10.0!

exec ${BINDIR}/sessreg -l $LINE -h $LOCATION -a $USER

There's no '-U $user'. The '-U' option even doesn't exist. Maybe you're using your own xdm configuration?

Anyway, finally closing as fixed.