chpwdfile 0.1 Thu, 10 Aug 2000 23:20:32 +0200 by warwick
Version-Log:

- Initial checkin.
- All we do so far is parse command-line options.

Project-Description:

Programme(s) to modify /etc/passwd-like authentication file.


chpwdfile 0.2 Sat, 12 Aug 2000 00:11:49 +0200 by warwick
Parent-Version:      0.1
Version-Log:

- Check that the user that is executing the programme shares group ownership
  of the passwd file.
- Added parsing of config file; must still handle super-users more than
  just reading their names, as well as putting the settings into operation
  of required.

Project-Description: as above

chpwdfile 0.3 Mon, 14 Aug 2000 23:41:59 +0200 by warwick
Parent-Version:      0.2
Version-Log:

- Implemented setting options from config file; must still handle
  supervisors, though.

Project-Description: as above

chpwdfile 0.4 Thu, 07 Sep 2000 22:05:31 +0200 by warwick
Parent-Version:      0.3
Version-Log:

- Can now actually add, delete and modify entries.

Project-Description: as above

chpwdfile 0.5 Thu, 07 Sep 2000 22:51:50 +0200 by warwick
Parent-Version:      0.4
Version-Log:

- Added a README file because it was easier then commenting and 
  adding error messages to the code.

Project-Description: as above

chpwdfile 0.6 Mon, 18 Sep 2000 16:33:08 +0200 by warwick
Parent-Version:      0.5
Version-Log:

- Added locking.
- Split #define's into header file (chpwdfile.h).  Add function prototypes.
- Move the more generic routines (independent of global variables) into
  util.c with its own header file (util.h) containing prototypes.
- Enabled logging (after removing the latent bugs).

Project-Description: as above

chpwdfile 0.7 Tue, 19 Sep 2000 15:22:52 +0200 by warwick
Parent-Version:      0.6
Version-Log:

- Implemented authentication from existing file; asks for admin password
  when adding users, and user or admin when modifying or deleting entries.
  Only when the group test thing has failed, of course.
- Small changes to the Makefile, like actually putting in the right
  program name as the target.

Project-Description: as above

chpwdfile 0.8 Tue, 19 Sep 2000 22:40:34 +0200 by warwick
Parent-Version:      0.7
Version-Log:

- Added error codes and usage statement.

Project-Description: as above

chpwdfile 0.9 Fri, 06 Oct 2000 19:09:40 +0200 by warwick
Parent-Version:      0.8
Version-Log:

- Added an error code and message if the username is too short.
- Did the cgi-bin stuff.  This has added some new files.

Project-Description: as above

chpwdfile 0.10 Sun, 08 Oct 2000 21:19:24 +0200 by warwick
Parent-Version:      0.9
Version-Log:

- Added a missing function prototype in cgi version header file.
- Added a couple of missing error codes.
- Removed all printf statements from routines that shouldn't have them
  (hmm, cryptic ;).
- Check for NULL CGI variables before trying to work with them.
- Check we have CGI variables defined before trying to free them.
- Trap the case of filesystem permissions not allowing chown / chmod / 
  rename of tmp passwd file to overwrite original passwd file.

Project-Description: as above

chpwdfile 0.11 Tue, 10 Oct 2000 16:40:02 +0200 by warwick
Parent-Version:      0.10
Version-Log:

- Changed the tmp file permissions from 600 to 660.
- Add a forgotten error message in the cgi version.
- Importantly, make sure that we strip the newline character from the 
  end of the existing passwords we are reading from the passwd file, or 
  else we can't authenticate.
- Remove the temp file if we fail.
- Don't advertise the name of the password file in the cgi version.
- Stop checking for no error before writing results to syslog(); we will
  only get that far if (!err) anyway.
- Add an error message for the case of an unknown value of err.
- Modify the error message output for aesthetic reasons.

Project-Description: as above

chpwdfile 0.12 Thu, 02 Nov 2000 18:00:14 +0200 by warwick
Parent-Version:      0.11
Version-Log:

- Merged the command-line and CGI versions into one file (#ifdef's are
  a wonderful thing).  This needed a new function in chpwdfile to do
  the actual reading in of the passwords and a corresponding change in
  get_passwd() in util.c.  Obviously we compile a leetle deeferently
  now.
- Names of CGI variables (`username', etc) are now defined in header
  file rather then hard coded.

Project-Description: as above

chpwdfile 0.13 Thu, 02 Nov 2000 22:40:44 +0200 by warwick
Parent-Version:      0.12
Version-Log:

- Create the tmp passwd file in the same directory as the original rather
  than in /tmp.  Apparently rename() doesn't work across filesystems.
- Generate seed for srand() by reading from /dev/urandom, or whatever
  other stream is #defined in chpwdfile.h.  Yet another global variable 
  to annoy Marc.
- A little work on the error messages in print_usage().
- Check that we don't get NULL pointers reading from the passwd file, or
  else we might just crash or write more garbage or burn in a lake of
  fire throughout all eternity.

Project-Description: as above

chpwdfile 0.14 Wed, 22 Nov 2000 16:52:00 +0200 by warwick
Parent-Version:      0.13
Version-Log:

- Wrote man page for command-line chpwdfile.
- Added example HTML form to the project, rather than writing proper
  documentation for the cgi-bin version.
- Rewrote the README file completely now that there's a man page.
- Added the TODO file to the project.

Project-Description: as above

chpwdfile 0.15 Wed, 22 Nov 2000 17:30:31 +0200 by warwick
Parent-Version:      0.14
Version-Log:

- Very quickly realised there was a mistake on the man page.  So I took
  the opportunity to change several things on it.
- Made an examples/ subdir and chucked all the garbage into it.  Could
  be usefule to someone.

Project-Description: as above

chpwdfile 0.16 Wed, 29 Nov 2000 14:52:46 +0200 by warwick
Parent-Version:      0.15
Version-Log:

- Remember to close /dev/urandom (or whatever) when no longer needed.
- Change (default) behaviour when command-line name is pwadd, pwdel
  or pwmod.  The -a,-d,-m switches still work when using these names.
- Updated documentation, including adding licensing information.

Project-Description: as above

chpwdfile 0.17 Sun, 01 Apr 2001 00:45:43 +0200 by warwick
Parent-Version:      0.16
Version-Log:

- Reformatted source files: changed indentation to 4 spaces.
- Include the LICENSE file containing the GPL text as required.

Project-Description: as above

chpwdfile 0.18 Sun, 01 Apr 2001 23:10:11 +0200 by warwick
Parent-Version:      0.17
Version-Log:

- Makefile: added install and dist targets; dist is for me to make tar
  archives of the source.  I could call them `releases', but that
  sounds a bit pretentious for such a simple program.
- Added -v option to print version number (as set by PRCS).
- Only try to retain passwd file ownership on delete and modify
  operations if EUID is root.
- Users can no longer delete their own entries.
- Username no longer has to be specified on the command line and
  defaults to $USER.
- Cleanups in print_usage().
- Only trusted users may set minimum password and username lengths and
  crypt type on the command line.
- Only root may specify an alternative configuration file.
- Never ask root for an admin password.
- Write to syslog() as `chpwdfile', which is not necessarily the name
  we were called with.
- Change default operation from -a to -m.
- Only include crypt.h if we're linking with glibc.
- Changed tmp file perms back to 0600.  Why did I use 0660?
- We will refuse to authenticate against an empty password.
  Previously if there was no admin entry in the password file you just
  had to hit enter when asked to authenticate and you'd be trusted.
- Large documentation updates for man page and README.
- Update demoform.html to reflect that only admin users may add and
  remove entries.

Project-Description: as above

chpwdfile 0.19 Tue, 15 May 2001 15:52:33 +0200 by warwick
Parent-Version:      0.18
Version-Log:

- Use syslog() properly; it requires a char *format, which it didn't
  have.  Since the program can read information on the command line
  and write it to the logs, I guess that was my very own format string
  vulnerability.
- chpwdfile.h: only define CGI-related variables if CGI is defined.
- Make sure that we write a '0' onto the end of the username string we
  read from the command line, or else writing it to the passwd file does
  odd things when it's longer MAXUSERLENGTH characters long.
- Errors to syslog(): facility LOG_USER, priority LOG_ERR.

Project-Description: as above

chpwdfile 0.20 Tue, 02 Apr 2002 20:05:45 +0200 by warwick
Parent-Version:      0.19
Version-Log:         empty
Project-Description: as above

chpwdfile 0.21 Fri, 08 Nov 2002 20:20:34 +0200 by warwick
Parent-Version:      0.20
Version-Log:

- Patch from Martin Dvorak: -s to read password from stdin.

Project-Description: as above

chpwdfile 0.22 Thu, 10 Jul 2003 20:34:18 +0200 by warwick
Parent-Version:      0.21
Version-Log:         empty
Project-Description: as above

chpwdfile 0.23 Thu, 10 Jul 2003 20:42:07 +0200 by warwick
Parent-Version:      0.22
Version-Log:

- This time we'll update the documentation, not just the code.
- Added patch by Mark Valiukas to compile with GCC 3.3 (new lines in printf())

Project-Description: as above

chpwdfile 0.24 Tue, 14 Oct 2003 20:25:02 +0200 by warwick
Parent-Version:      0.23
Version-Log:

- Patches from Pawel Golaszewski to
    * use DESTDIR in Makefile
    * add spec file
- Fixed warning about unused variable `cgi_vars' in chpwdfile.c
  when compiling without -DCGI

Project-Description: as above

chpwdfile 0.25 Tue, 27 Apr 2004 14:46:56 +0200 by warwick
Parent-Version:      0.24
Version-Log:

- Update README
    * Users have never needed write access to the config file.
    * Give Pawel some credit.
    * Add http URL.
- Add Changelog

Project-Description: as above

chpwdfile 0.26 Tue, 27 Apr 2004 14:51:18 +0200 by warwick
Parent-Version:      0.25
Version-Log:

- Patch from Khoguan Phuann to print the right number for minimum username
  length.

Project-Description: as above
