| From 497e0fc7010969759c8247f7013a89589c44234a Mon Sep 17 00:00:00 2001 |
| From: Kai Kang <kai.kang@windriver.com> |
| Date: Thu, 17 Dec 2020 18:12:29 +0800 |
| Subject: [PATCH 3/8] check whether password expired with pam |
| |
| Introduce a new enum AuthResult type AUTH_PASSWD_EXPIRE. When user's |
| password is expired, return it. Only work with pam. |
| |
| Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/] |
| |
| Signed-off-by: Kai Kang <kai.kang@windriver.com> |
| --- |
| src/lxdm.h | 1 + |
| src/pam.c | 4 ++++ |
| 2 files changed, 5 insertions(+) |
| |
| diff --git a/src/lxdm.h b/src/lxdm.h |
| index 568573f..1c2f837 100644 |
| --- a/src/lxdm.h |
| +++ b/src/lxdm.h |
| @@ -41,6 +41,7 @@ enum AuthResult |
| AUTH_SUCCESS, |
| AUTH_BAD_USER, |
| AUTH_FAIL, |
| + AUTH_PASSWD_EXPIRE, |
| AUTH_PRIV, |
| AUTH_ERROR |
| }; |
| diff --git a/src/pam.c b/src/pam.c |
| index 43bd687..16a36f0 100644 |
| --- a/src/pam.c |
| +++ b/src/pam.c |
| @@ -257,6 +257,10 @@ int lxdm_auth_user_authenticate(LXDM_AUTH *a,const char *user,const char *pass,i |
| return AUTH_FAIL; |
| } |
| ret=pam_acct_mgmt(a->handle,PAM_SILENT); |
| + if (ret == PAM_NEW_AUTHTOK_REQD) { |
| + g_debug("user %s account has expired\n", user); |
| + return AUTH_PASSWD_EXPIRE; |
| + } |
| if(ret!=PAM_SUCCESS) |
| { |
| g_debug("user %s acct mgmt fail with %d\n",user,ret); |
| -- |
| 2.25.1 |
| |