summaryrefslogtreecommitdiffstats
path: root/net/tac_plus4
diff options
context:
space:
mode:
authorandreas <andreas@FreeBSD.org>2000-12-01 20:42:49 +0000
committerandreas <andreas@FreeBSD.org>2000-12-01 20:42:49 +0000
commit3b037fc8c5c06f0390871302c47b254c4e35bf53 (patch)
treec7594e4524b142a9334f0aa615e4b1729f0742d5 /net/tac_plus4
parent05fefc48d564d02b245658a02d0d783ab50d3cf8 (diff)
downloadFreeBSD-ports-3b037fc8c5c06f0390871302c47b254c4e35bf53.zip
FreeBSD-ports-3b037fc8c5c06f0390871302c47b254c4e35bf53.tar.gz
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 <serg@informika.ru>
Diffstat (limited to 'net/tac_plus4')
-rw-r--r--net/tac_plus4/Makefile5
-rw-r--r--net/tac_plus4/files/extra-patch-bb47
2 files changed, 52 insertions, 0 deletions
diff --git a/net/tac_plus4/Makefile b/net/tac_plus4/Makefile
index beee972..fd6c58e 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 0000000..b73bff7
--- /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")) {
OpenPOWER on IntegriCloud