]> granicus.if.org Git - shadow/commitdiff
* NEWS, src/login.c: Log in utmp / utmpx / wtmp also when PAM is
authornekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Fri, 18 May 2012 17:57:52 +0000 (17:57 +0000)
committernekral-guest <nekral-guest@5a98b0ae-9ef6-0310-add3-de5d479b70d7>
Fri, 18 May 2012 17:57:52 +0000 (17:57 +0000)
enabled. This is not done by pam_lastlog. This was broken on
2011-07-23.
* NEWS, libmisc/utmp.c: Do not log in wtmp when PAM is enabled.
This is done by pam_lastlog.

ChangeLog
NEWS
libmisc/utmp.c
src/login.c

index 746ed1b82bbd0fd3c958b393fd77d41180fd4abf..feb9dc65a502c26651ee2f9ace4ed8982a54efa1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2012-05-17  Nicolas François  <nicolas.francois@centraliens.net>
+
+       * NEWS, src/login.c: Log in utmp / utmpx / wtmp also when PAM is
+       enabled. This is not done by pam_lastlog. This was broken on
+       2011-07-23.
+       * NEWS, libmisc/utmp.c: Do not log in wtmp when PAM is enabled.
+       This is done by pam_lastlog.
+
 2012-05-17  Christian Perrier  <bubulle@Êebian.org>
 
        * man/po/fr.po: French translation of manpages completed
diff --git a/NEWS b/NEWS
index 7171de99ac395701b0890ce5b4bfa40e4ccae0f4..68c2302b97760273e1ac358cbb85b0d651fc166f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,7 +2,9 @@ $Id$
 
 shadow-4.1.5 -> shadow-4.1.5.1                                 UNRELEASED
 
-
+- login
+  * Log into utmp(x) when PAM is enabled, but do not log into wtmp.
+    This complete pam_lastlog which logs into wtmp and in into utmp(x).
 
 shadow-4.1.4.3 -> shadow-4.1.5                                 2012-02-12
 
index 271aaa44b9d08a05cb3f269d46258308d763b43c..84e77fd3ab17b4c1816b278a05442778d26b82a0 100644 (file)
@@ -129,6 +129,7 @@ static bool is_my_tty (const char *tty)
        return ret;
 }
 
+#ifndef USE_PAM
 /*
  * Some systems already have updwtmp() and possibly updwtmpx().  Others
  * don't, so we re-implement these functions if necessary.
@@ -160,6 +161,7 @@ static void updwtmpx (const char *filename, const struct utmpx *utx)
 }
 #endif                         /* ! HAVE_UPDWTMPX */
 #endif                         /* ! USE_UTMPX */
+#endif                         /* ! USE_PAM */
 
 
 /*
@@ -313,7 +315,10 @@ int setutmp (struct utmp *ut)
        }
        endutent ();
 
+#ifndef USE_PAM
+       /* This is done by pam_lastlog */
        updwtmp (_WTMP_FILE, ut);
+#endif                         /* ! USE_PAM */
 
        return err;
 }
@@ -446,7 +451,10 @@ int setutmpx (struct utmpx *utx)
        }
        endutxent ();
 
+#ifndef USE_PAM
+       /* This is done by pam_lastlog */
        updwtmpx (_WTMP_FILE "x", utx);
+#endif                         /* ! USE_PAM */
 
        return err;
 }
index 0e107e2afc9bcdc2abeca69a57694921ee338ff5..a38eb10bcfae037322bb5560364d31791a9a3ff1 100644 (file)
@@ -126,12 +126,10 @@ 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;
@@ -473,7 +471,6 @@ 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
@@ -499,7 +496,6 @@ static void update_utmp (const char *user,
        free (utx);
 #endif                         /* USE_UTMPX */
 }
-#endif                         /* ! USE_PAM */
 
 /*
  * login - create a new login session for a user
@@ -1215,13 +1211,11 @@ 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.
         *