Shadow Login: Patch #6
John F. Haugh II
jfh at rpp386.Dallas.TX.US
Thu Mar 9 05:17:28 AEST 1989
This is a small patch being sent out to add a very simple feature.
Normally I would wait, but as I am already behind with patch5, I am
feeling guilty :-)
In pwconv(1) there is a line which selects the minimum and maximum
number of days a password is valid during. This update makes that
a configurable number in the config.h file. Credit for this
option is due to Axel Fischer [ I think that's his name ... ]
- John.
--
*** config.h
--- new/config.h
**************
*** 1,7
/*
* Configuration file for login.
*
! * @(#)config.h 1.3 15:59:38 3/4/89
*/
/*
--- 1,7 -----
/*
* Configuration file for login.
*
! * @(#)config.h 1.4 11:17:19 3/8/89
*/
/*
**************
*** 39,44
* empty ones.
#undef NOBLANK
/*
* Define NDEBUG for production versions
--- 39,54 -----
* empty ones.
#undef NOBLANK
+
+ /*
+ * Define MAXDAYS to be the default maximum number of days a password
+ * is valid for when converting to shadow passwords. Define MINDAYS
+ * to be the minimum number of days before a password may be changed.
+ * See pwconv.c for more details.
+ */
+
+ #define MAXDAYS 10000
+ #define MINDAYS 0
/*
* Define NDEBUG for production versions
*** pwconv.c
--- new/pwconv.c
**************
*** 7,13
*
* The new password file is left in npasswd, the new shadow file is
* left in nshadow. Existing shadow entries are copied as is.
! * New entries are created with passwords which expire in 10000 days,
* with a last changed date of today, unless password aging
* information was already present. Entries with blank passwords
* are not copied to the shadow file at all.
--- 7,13 -----
*
* The new password file is left in npasswd, the new shadow file is
* left in nshadow. Existing shadow entries are copied as is.
! * New entries are created with passwords which expire in MAXDAYS days,
* with a last changed date of today, unless password aging
* information was already present. Likewise, the minimum number of
* days before which the password may be changed is controlled by
**************
*** 9,16
* left in nshadow. Existing shadow entries are copied as is.
* New entries are created with passwords which expire in 10000 days,
* with a last changed date of today, unless password aging
! * information was already present. Entries with blank passwords
! * are not copied to the shadow file at all.
*/
#include <sys/types.h>
--- 9,18 -----
* left in nshadow. Existing shadow entries are copied as is.
* New entries are created with passwords which expire in MAXDAYS days,
* with a last changed date of today, unless password aging
! * information was already present. Likewise, the minimum number of
! * days before which the password may be changed is controlled by
! * MINDAYS. Entries with blank passwordsare not copied to the shadow
! * file at all.
*/
#include <sys/types.h>
**************
*** 21,27
#include "lastlog.h"
#include "shadow.h"
! char buf[BUFSIZ];
long time ();
long a64l ();
--- 23,31 -----
#include "lastlog.h"
#include "shadow.h"
! #ifndef lint
! static char _sccsidi[] = "@(#)pwconv.c 1.2 11:17:22 3/8/89";
! #endif
char buf[BUFSIZ];
**************
*** 23,28
char buf[BUFSIZ];
long time ();
long a64l ();
--- 27,34 -----
static char _sccsidi[] = "@(#)pwconv.c 1.2 11:17:22 3/8/89";
#endif
+ char buf[BUFSIZ];
+
long time ();
long a64l ();
**************
*** 101,108
tspwd.sp_max *= 7;
tspwd.sp_lstchg *= 7;
} else { /* fake up new password age stuff */
! tspwd.sp_max = 10000;
! tspwd.sp_min = 0;
tspwd.sp_lstchg = today;
}
if (! putspent (&tspwd, shadow)) { /* output entry */
--- 107,114 -----
tspwd.sp_max *= 7;
tspwd.sp_lstchg *= 7;
} else { /* fake up new password age stuff */
! tspwd.sp_max = MAXDAYS;
! tspwd.sp_min = MINDAYS;
tspwd.sp_lstchg = today;
}
if (! putspent (&tspwd, shadow)) { /* output entry */
*** README
--- new/README
**************
*** 18,24
Begin by reading and editing the config.h file. All options are selected
by using #define's. A brief description for each available option appears
! below.
Note that there are MANY options. As distributed all options are turned
on, which produces a really nice package. This is the system as used on
--- 18,25 -----
Begin by reading and editing the config.h file. All options are selected
by using #define's. A brief description for each available option appears
! below. You may want to print this file out as it is LONG and you will
! need to refer to it while editting config.h
Note that there are MANY options. As distributed most options are turned
on, which produces a really nice package. This is the system as used on
**************
*** 20,26
by using #define's. A brief description for each available option appears
below.
! Note that there are MANY options. As distributed all options are turned
on, which produces a really nice package. This is the system as used on
the authors machine.
--- 21,27 -----
below. You may want to print this file out as it is LONG and you will
need to refer to it while editting config.h
! Note that there are MANY options. As distributed most options are turned
on, which produces a really nice package. This is the system as used on
the authors machine. [ The one exception is NOBLANK, that is turned off
because of anonymous UUCP logins. ]
**************
*** 22,28
Note that there are MANY options. As distributed all options are turned
on, which produces a really nice package. This is the system as used on
! the authors machine.
Dialup Password Files -
This option permits individual ports to have an additional
--- 23,30 -----
Note that there are MANY options. As distributed most options are turned
on, which produces a really nice package. This is the system as used on
! the authors machine. [ The one exception is NOBLANK, that is turned off
! because of anonymous UUCP logins. ]
Dialup Password Files -
This option permits individual ports to have an additional
**************
*** 67,72
Select this option by defining the NOBLANK macro.
HZ Environmental Variable -
This option pre-defines the HZ environmental variable.
Certain systems require this variable be defined for
--- 69,85 -----
Select this option by defining the NOBLANK macro.
+ Password Aging Defaults -
+ You may select the default number of days during which a
+ password is valid. The pwconv command adds aging
+ information to accounts which do not include it already.
+
+ The MINDAYS macro must be defined to be the minimum
+ number of days which must pass before a password may be
+ changed. The MAXDAYS macro must be defined to be the
+ maximum number of days which a password will remain
+ valid during.
+
HZ Environmental Variable -
This option pre-defines the HZ environmental variable.
Certain systems require this variable be defined for
**************
*** 108,114
Select this option by defining the CONSOLE macro to
have the desired port name. If this file is a regular
file, it is considered to contain a list of legal port
! names, one per line.
Message of the Day Printing -
This option causes the message of the day to be
--- 121,130 -----
Select this option by defining the CONSOLE macro to
have the desired port name. If this file is a regular
file, it is considered to contain a list of legal port
! names, one per line. Note that the port names DO NOT
! begin with "/dev/" and that a file name would have to
! be fully qualified. See config.h for a pair of
! examples.
Message of the Day Printing -
This option causes the message of the day to be
--
John F. Haugh II +--Quote of the Week:------------------
VoiceNet: (214) 250-3311 Data: -6272 | "Give me your poor huddled masses,
InterNet: jfh at rpp386.Dallas.TX.US | Let's club 'em to death ..."
UucpNet : <backbone>!killer!rpp386!jfh +--------------------------------------
More information about the Comp.sources.bugs
mailing list