From: Karel Zak Date: Tue, 16 Jun 2020 11:49:48 +0000 (+0200) Subject: login: use PAM_SILENT to propagate hushlogin to PAM X-Git-Tag: v2.36-rc2~47 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=31d79197c01461397e5fd6b69830be3b69f6b2c5;p=thirdparty%2Futil-linux.git login: use PAM_SILENT to propagate hushlogin to PAM login(1) follows /etc/hushlogin and ~/.hushlogin to enable silent mode, but it's not propagated to PAM now. Note that login(1) from shadow-utils uses PAM_SILENT too. Addresses: https://github.com/linux-pam/linux-pam/issues/233 Addresses: https://github.com/karelzak/util-linux/issues/1059 Signed-off-by: Karel Zak --- diff --git a/login-utils/login.c b/login-utils/login.c index 2a938ba126..026c023c92 100644 --- a/login-utils/login.c +++ b/login-utils/login.c @@ -959,7 +959,7 @@ static void loginpam_session(struct login_context *cxt) if (is_pam_failure(rc)) loginpam_err(pamh, rc); - rc = pam_open_session(pamh, 0); + rc = pam_open_session(pamh, cxt->quiet ? PAM_SILENT : 0); if (is_pam_failure(rc)) { pam_setcred(cxt->pamh, PAM_DELETE_CRED); loginpam_err(pamh, rc); @@ -1339,6 +1339,8 @@ int main(int argc, char **argv) sleepexit(EXIT_FAILURE); } + cxt.quiet = get_hushlogin_status(pwd, 1); + /* * Open PAM session (after successful authentication and account check). */ @@ -1349,8 +1351,6 @@ int main(int argc, char **argv) endpwent(); - cxt.quiet = get_hushlogin_status(pwd, 1); - log_utmp(&cxt); log_audit(&cxt, 1); log_lastlog(&cxt);