Kevin Steves
2001-Oct-12 21:51 UTC
bug report: last login time vs PAM in portability release
on hp-ux 11 i see: $ date;ssh jenny Fri Oct 12 14:44:13 PDT 2001 Last successful login for stevesk: Fri Oct 12 10:45:42 PST8PDT 2001 on pts/2 Last unsuccessful login for stevesk: Mon Sep 24 22:55:53 PST8PDT 2001 Last login: Fri Oct 12 10:45:43 2001 from 172.31.1.53 You have mail. so solaris PAM is different. can other solaris+PAM users confirm this? On Fri, 12 Oct 2001, Benn Oshrin wrote: :There appears to be a problem with the reported last login time for :v2.9.9p2 (and possibly earlier versions). This is for PAM enabled Solaris :hosts (Sol 7 and 8). : :Login to a host running stock 2.9.9p2: : : benno[~] starscream% date ; slogin hola : Fri Oct 12 13:10:50 EDT 2001 : Last login: Fri Oct 12 13:10:52 2001 from starscream.cc.c : SunOS hola 5.7 Generic_106541-09 sun4u sparc SUNW,Ultra-60 : You have new mail. : benno[~] hola% : :Note that the last login time reported is two seconds after the connection :is initiated. It appears that this is because pam_open_session is called :before do_login. pam_open_session updates the lastlog file. When do_login :is called, it reads the already updated lastlog file and reports the time :of the session just started. To fix this, I moved the pam_open_session :call into do_login: : :--- session.c Fri Oct 12 13:05:58 2001 :+++ .snapshot/nightly.3/session.c Mon Oct 8 15:52:02 2001 :@@ -541,6 +541,11 @@ : ptyfd = s->ptyfd; : ttyfd = s->ttyfd; : :+#if defined(USE_PAM) :+ do_pam_session(s->pw->pw_name, s->tty); :+ do_pam_setcred(1); :+#endif :+ : /* Fork the child. */ : if ((pid = fork()) == 0) { : :@@ -698,11 +703,6 @@ : last_login_time = get_last_login_time(pw->pw_uid, :pw->pw_name, : hostname, sizeof(hostname)); : } :- :-#if defined(USE_PAM) :- do_pam_session(s->pw->pw_name, s->tty); :- do_pam_setcred(1); :-#endif : : /* Record that there was a login on that tty from the remote host. :*/ : record_login(pid, s->tty, pw->pw_name, pw->pw_uid, : :And here's a session from to a host running the patched version: : : benno[~] starscream% date ; slogin saluton : Fri Oct 12 13:16:47 EDT 2001 : Last login: Fri Oct 12 13:05:03 2001 from starscream.cc.c : SunOS saluton 5.7 Generic_106541-09 sun4u sparc SUNW,Ultra-60 : You have new mail. : benno[~] saluton% : :I hope you find this useful. : :-Benn- :
mouring at etoh.eviladmin.org
2001-Oct-12 21:58 UTC
bug report: last login time vs PAM in portability release
It is a problem with Solaris. Linux (Mandrake in this case) does not show this bug. bash-2.05$ date; ssh localhost Fri Oct 12 16:59:26 CDT 2001 Last login: Fri Oct 12 15:13:24 2001 from karla.eviladmin.org But my solaris 2.7 does show it. - Ben On Fri, 12 Oct 2001, Kevin Steves wrote:> on hp-ux 11 i see: > > $ date;ssh jenny > Fri Oct 12 14:44:13 PDT 2001 > Last successful login for stevesk: Fri Oct 12 10:45:42 PST8PDT 2001 on pts/2 > Last unsuccessful login for stevesk: Mon Sep 24 22:55:53 PST8PDT 2001 > Last login: Fri Oct 12 10:45:43 2001 from 172.31.1.53 > You have mail. > > so solaris PAM is different. can other solaris+PAM users confirm this? > > On Fri, 12 Oct 2001, Benn Oshrin wrote: > :There appears to be a problem with the reported last login time for > :v2.9.9p2 (and possibly earlier versions). This is for PAM enabled Solaris > :hosts (Sol 7 and 8). > : > :Login to a host running stock 2.9.9p2: > : > : benno[~] starscream% date ; slogin hola > : Fri Oct 12 13:10:50 EDT 2001 > : Last login: Fri Oct 12 13:10:52 2001 from starscream.cc.c > : SunOS hola 5.7 Generic_106541-09 sun4u sparc SUNW,Ultra-60 > : You have new mail. > : benno[~] hola% > : > :Note that the last login time reported is two seconds after the connection > :is initiated. It appears that this is because pam_open_session is called > :before do_login. pam_open_session updates the lastlog file. When do_login > :is called, it reads the already updated lastlog file and reports the time > :of the session just started. To fix this, I moved the pam_open_session > :call into do_login: > : > :--- session.c Fri Oct 12 13:05:58 2001 > :+++ .snapshot/nightly.3/session.c Mon Oct 8 15:52:02 2001 > :@@ -541,6 +541,11 @@ > : ptyfd = s->ptyfd; > : ttyfd = s->ttyfd; > : > :+#if defined(USE_PAM) > :+ do_pam_session(s->pw->pw_name, s->tty); > :+ do_pam_setcred(1); > :+#endif > :+ > : /* Fork the child. */ > : if ((pid = fork()) == 0) { > : > :@@ -698,11 +703,6 @@ > : last_login_time = get_last_login_time(pw->pw_uid, > :pw->pw_name, > : hostname, sizeof(hostname)); > : } > :- > :-#if defined(USE_PAM) > :- do_pam_session(s->pw->pw_name, s->tty); > :- do_pam_setcred(1); > :-#endif > : > : /* Record that there was a login on that tty from the remote host. > :*/ > : record_login(pid, s->tty, pw->pw_name, pw->pw_uid, > : > :And here's a session from to a host running the patched version: > : > : benno[~] starscream% date ; slogin saluton > : Fri Oct 12 13:16:47 EDT 2001 > : Last login: Fri Oct 12 13:05:03 2001 from starscream.cc.c > : SunOS saluton 5.7 Generic_106541-09 sun4u sparc SUNW,Ultra-60 > : You have new mail. > : benno[~] saluton% > : > :I hope you find this useful. > : > :-Benn- > : > > >