From 2aefca0f2e5fcdc4d4c7ca4edf4688b8ce713fff Mon Sep 17 00:00:00 2001 From: nekral-guest Date: Sat, 23 Jul 2011 11:03:50 +0000 Subject: [PATCH] * NEWS, src/login.c: Do not log in utmp / utmpx / wtmp when PAM is enabled. This is already done by pam_lastlog. --- ChangeLog | 5 +++++ NEWS | 2 ++ src/login.c | 6 ++++++ 3 files changed, 13 insertions(+) diff --git a/ChangeLog b/ChangeLog index d73f8930..d01e34bc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-07-23 Nicolas François + + * NEWS, src/login.c: Do not log in utmp / utmpx / wtmp when PAM is + enabled. This is already done by pam_lastlog. + 2011-07-23 Nicolas François * src/chpasswd.c: Add annotations to indicate that usage() does diff --git a/NEWS b/NEWS index dfc0349d..8179326b 100644 --- a/NEWS +++ b/NEWS @@ -39,6 +39,8 @@ shadow-4.1.4.3 -> shadow-4.1.5 UNRELEASED list of TTYs. * Fixed warning and support for CONSOLE_GROUPS for users member of more than 16 groups. + * Do not log into utmp(x) or wtmp when PAM is enabled. This is done by + pam_lastlog. - su * Document the su exit values. * When su receives a signal, wait for the child to terminate (after diff --git a/src/login.c b/src/login.c index c24fc860..1328b127 100644 --- a/src/login.c +++ b/src/login.c @@ -126,10 +126,12 @@ static void usage (void); static void setup_tty (void); static void process_flags (int argc, char *const *argv); static /*@observer@*/const char *get_failent_user (/*@returned@*/const char *user); +#ifndef USE_PAM static void update_utmp (const char *user, const char *tty, const char *host, /*@null@*/const struct utmp *utent); +#endif /* ! USE_PAM */ #ifndef USE_PAM static struct faillog faillog; @@ -471,6 +473,7 @@ static /*@observer@*/const char *get_failent_user (/*@returned@*/const char *use return failent_user; } +#ifndef USE_PAM /* * update_utmp - Update or create an utmp entry in utmp, wtmp, utmpw, and * wtmpx @@ -496,6 +499,7 @@ static void update_utmp (const char *user, free (utx); #endif /* USE_UTMPX */ } +#endif /* ! USE_PAM */ /* * login - create a new login session for a user @@ -1208,11 +1212,13 @@ int main (int argc, char **argv) } } +#ifndef USE_PAM /* * The utmp entry needs to be updated to indicate the new status * of the session, the new PID and SID. */ update_utmp (username, tty, hostname, utent); +#endif /* ! USE_PAM */ /* The pwd and spwd entries for the user have been copied. *