From 7eb4e513f0e1ebe328796ad4e2418a3d095c7449 Mon Sep 17 00:00:00 2001 From: Andreas Klemm Date: Fri, 1 Dec 2000 20:42:49 +0000 Subject: From Sergey: "The tac_plus user guide says that when passwd(5) file is used for user authentication, the expiry date checks against shell field of password file. Maybe it is OK for custom passwd files, but not for system password file. Here is a little patch below which allow the tacacs daemon check the expiration dates against 'expire' field of FreeBSD's master.passwd file. It is very useful for me, and may be useful for other FreeBSD&tacacs users." Submitted by: Sergey Levov --- net/tac_plus4/Makefile | 5 ++++ net/tac_plus4/files/extra-patch-bb | 47 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 net/tac_plus4/files/extra-patch-bb (limited to 'net/tac_plus4') diff --git a/net/tac_plus4/Makefile b/net/tac_plus4/Makefile index beee97271e44..fd6c58ecdfa5 100644 --- a/net/tac_plus4/Makefile +++ b/net/tac_plus4/Makefile @@ -23,6 +23,11 @@ MAN1= tac_plus.1 EXTRA_PATCHES= ${PATCHDIR}/extra-patch-ba .endif +# check expiration dates against 'expire' field of master.passwd file +.if defined(TAC_EXPIRE_MASTER_PASSWD) && ${TAC_EXPIRE_MASTER_PASSWD} == YES +EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-bb +.endif + do-install: ${INSTALL_PROGRAM} ${WRKSRC}/tac_plus ${PREFIX}/sbin ${INSTALL_MAN} ${WRKSRC}/tac_plus.1 ${PREFIX}/man/man1/tac_plus.1 diff --git a/net/tac_plus4/files/extra-patch-bb b/net/tac_plus4/files/extra-patch-bb new file mode 100644 index 000000000000..b73bff78296c --- /dev/null +++ b/net/tac_plus4/files/extra-patch-bb @@ -0,0 +1,47 @@ +Hello! + +The tac_plus user guide says that when passwd(5) file is used for user +authentication, the expiry date checks against shell field of password file. +Maybe it is OK for custom passwd files, but not for system password file. + +Here is a little patch below which allow the tacacs daemon check +the expiration dates against 'expire' field of FreeBSD's master.passwd file. +It is very useful for me, and may be useful for other FreeBSD&tacacs users. + +With best regards, +Sergey Levov (serg@informika.ru) + +------------------------------ cut here --------------------------- + +--- pwlib.c.orig Fri Dec 1 15:07:03 2000 ++++ pwlib.c Fri Dec 1 15:07:48 2000 +@@ -195,7 +195,7 @@ + struct passwd *pw; + char *exp_date; + char *cfg_passwd; +-#ifdef SHADOW_PASSWORDS ++#if defined(SHADOW_PASSWORDS) || defined(FREEBSD) + char buf[12]; + #endif /* SHADOW_PASSWORDS */ + +@@ -217,7 +217,20 @@ + return (0); + } + cfg_passwd = pw->pw_passwd; ++#ifdef FREEBSD ++ buf[0] = '\0'; ++ if (pw->pw_expire > (time_t) 0) ++ { ++ long secs = pw->pw_expire; ++ char *p = ctime(&secs); ++ bcopy(p+4, buf, 7); ++ bcopy(p+20, buf+7, 4); ++ buf[11] = '\0'; ++ } ++ exp_date = buf; ++#else + exp_date = pw->pw_shell; ++#endif + + #ifdef SHADOW_PASSWORDS + if (STREQ(pw->pw_passwd, "x")) { -- cgit v1.2.3