trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: November 2011

Re: [trinity-devel] Can't login with KDM

From: "Timothy Pearson" <kb9vqf@...>
Date: Thu, 17 Nov 2011 21:32:40 -0600
>>> On a whim I tried this really big
>>> hammer. I created a patch to strip from the kdebase code all
>>> references of consolekit.c and CONSOLE_KIT. Seemed like a
>>> reasonable idea.
>>>
>>> No luck. Still can't login with KDM.
>>>
>>> Would somebody please provide me a
>>> knee-bone-connected-to-the-thigh-bone explanation or simple
>>> flow chart how KDM runs through everything? I'm still
>>> leaning toward this being an authentication problem. Perhaps
>>> with some kind of flow chart I can try something.
>>
>> Some progress.
>>
>> I tried some different -debug options with kdm. I saw an error message
>> "password verify failed." The only place the message is found is in
>> kdm/backend/client.c.
>>
>> Any ideas where to attack next?
>>
>> Darrell
>>
>
> Hi Darrell,
>
> That snippet you posted above I think contains a very important clue to
> the solution.
>
> In kdm/backend/client.c , try commenting out the #ifdefs for HAVE_CRYPT.
> I am pretty sure that HAVE_CRYPT is not being set by CMake, which would
> cause non-PAM (encrypted) password checks to fail.
>
> If this temporary hack fixes the problem, a simple fix to CMake should
> squash this bug for good!
>
> Tim

To clarify, you should (as a test ONLY) replace this whole block:

# if defined(ultrix) || defined(__ultrix__)
	if (authenticate_user( p, curpass, NULL ) < 0)
# elif defined(HAVE_CRYPT)
	if (strcmp( crypt( curpass, p->pw_passwd ), p->pw_passwd ))
# else
	if (strcmp( curpass, p->pw_passwd ))
# endif

With this single line:

if (strcmp( crypt( curpass, p->pw_passwd ), p->pw_passwd ))

Tim