summaryrefslogtreecommitdiffstats
path: root/sss_client/pam_sss.c
diff options
context:
space:
mode:
Diffstat (limited to 'sss_client/pam_sss.c')
-rw-r--r--sss_client/pam_sss.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/sss_client/pam_sss.c b/sss_client/pam_sss.c
index 5ac9e2f0b..4755cd32e 100644
--- a/sss_client/pam_sss.c
+++ b/sss_client/pam_sss.c
@@ -32,6 +32,7 @@
#include <security/pam_modules.h>
#include <security/pam_misc.h>
#include <security/pam_ext.h>
+#include <security/pam_modutil.h>
#include "sss_pam_macros.h"
#include "sss_cli.h"
@@ -64,6 +65,7 @@ struct pam_items {
int pam_newauthtok_type;
size_t pam_newauthtok_size;
pid_t cli_pid;
+ const char *login_name;
};
#define DEBUG_MGS_LEN 1024
@@ -501,6 +503,9 @@ static int get_pam_items(pam_handle_t *pamh, struct pam_items *pi)
pi->cli_pid = getpid();
+ pi->login_name = pam_modutil_getlogin(pamh);
+ if (pi->login_name == NULL) pi->login_name="";
+
return PAM_SUCCESS;
}
@@ -566,8 +571,15 @@ static int send_and_receive(pam_handle_t *pamh, struct pam_items *pi,
goto done;
}
logger(pamh, (pam_status == PAM_SUCCESS ? LOG_INFO : LOG_NOTICE),
- "received for user %s: %d (%s)", pi->pam_user, pam_status,
- pam_strerror(pamh,pam_status));
+ "authentication %s; logname=%s uid=%d euid=%d tty=%s ruser=%s "
+ "rhost=%s user=%s",
+ pam_status == PAM_SUCCESS ? "success" : "failure",
+ pi->login_name, getuid(), geteuid(), pi->pam_tty, pi->pam_ruser,
+ pi->pam_rhost, pi->pam_user);
+ if (pam_status != PAM_SUCCESS) {
+ logger(pamh, LOG_NOTICE, "received for user %s: %d (%s)",
+ pi->pam_user, pam_status, pam_strerror(pamh,pam_status));
+ }
done:
if (buf != NULL ) {