@Rael Gugelmin Cunha
My knowledge is not PAM friendly but I think it's something like this -
when the screen is locked, PAM transaction is started via pam_start and
after authentication (entered a password) it's closed via pam_end. But
if we switch user from the locked screen, PAM transaction is not
terminated via pam_end and pam_handle_ is still presented. When we
return into the session and lock the screen again, the following code
will cause the issue:
unity/lockscreen/UserAuthenticatorPam.cpp
if (pam_handle_)
{
LOG_ERROR(logger) << "Unable to start authentication because another one
has already been started";
return false;
}
It will try 5 times to authenticate but it always returns false as
pam_handle_ is still present, then the following code shows
"Authentication failure" with "Switch to greeter" button:
unity/lockscreen/UserPromptView.cpp
if (num_retry_auth_ <= 5)
{
LOG_WARNING(logger) << "Failed to start the authentication process.
Retrying for " << num_retry_auth_ << " time.";
source_manager_.AddTimeout(100, [this] {
StartAuthentication();
return false;
});
}
else
{
AddMessage(_("Authentication failure"), nux::color::Red);
AddButton(_("Switch to greeter…"), [this] {
session_manager_->SwitchToGreeter();
});
My solution is to terminate the PAM transaction and let it try to init the new
one. I have tested it in my case and it works without problem.
I wonder why there is the case of error - "Unable to start authentication
because another one has already been started". I don't know what case it's
related to.
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1733557
Title:
Login screen showing Authentication Failure Switch to greeter...
To manage notifications about this bug go to:
https://bugs.launchpad.net/unity/+bug/1733557/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs