pam_conv.conv callback not honored by lightdm/unity-greeter
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
unity-greeter (Ubuntu) |
Triaged
|
High
|
Unassigned |
Bug Description
Reporting against unity-greeter because it's a UI problem, but it might well go deeper.
We have a pam auth module which needs to use pam_conv.conv (the callback function which prompts the user). It implements a two-factor authentication regime, in which the first factor is a conventional unechoed password, and the second factor is a multi-digit OTP, which should be echoed.
When this module is in use, lightdm *almost* gets it right. I enter the first password, and it is not echoed, and then I get the *same* visual appearence (the box with my name) as it sits silently waiting for the OTP. And that one does get echoed.
Everything works...except it didn't bother to display the prompts. I know the designers have decided what the prompts are, but it's not up to them when they didn't design the pam module... ;0
Specifically, our prompts are "SSO password: ", "OTP (OPTIONAL): ", "OTP: ", and also some error messages.
The "SSO password: " prompt is PAM_PROMPT_
We need all of these to be displayed, without exception (which is what the pam rules say you're supposed to do).
no longer affects: | unity-greeter |
It appears that user-list.vala (user_list. show_prompt) basically ignores the text of the prompt and displays its own messages, based on the guess that if echo is off then it's a password, and if echo is on, it's a user, sort of, sometimes.
This is quite wrong.