Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Jul 1995 10:44:43 -0700
From:      Bill Paul <wpaul>
To:        CVS-commiters, cvs-gnu
Subject:   cvs commit: src/gnu/usr.sbin/yppasswdd Makefile pw_copy.c pw_util.c update.c yppasswdd.8 yppasswdd.c yppwupdate
Message-ID:  <199507191744.KAA02699@freefall.cdrom.com>

next in thread | raw e-mail | index | archive | help
wpaul       95/07/19 10:44:42

  Modified:    gnu/usr.sbin/ypserv  Makefile.yp yp_svc.c
               gnu/usr.sbin/yppasswdd  Makefile pw_copy.c pw_util.c
                        update.c yppasswdd.8 yppasswdd.c  yppwupdate
  Log:
  Updates, fixes and cleanups -- oh my.
  
  In ypserv:
  
  yp_svc.c:
  - small signal handler tweak (hopefully the last): just use sigemptyset()
  to clear sa_mask.
  
  Makefile.yp:
  - Let the user specify the location of master.passwd when updating
  maps (e.g. make MASTER_PASSWD=/some/path/to/master.passwd). Editing
  the file to change the location of master.passwd still works. This
  is mostly to let yppassswdd specify the name of the master.passwd
  file itself.
  
  In yppasswdd:
  
  yppasswdd.c:
  - Roll in some minor changes (mostly casts) from Olaf Kirch's latest
  yppasswd package release (version 0.7).
  - Use daemon() instead of doing all the deamonizing gruntwork ourselves.
  - Call pw_init() after daemonizing ourselves. pw_init() sets up some
  resource limits and blocks some signals for us. We used to do this before
  every password change, but there's really no point in calling it more
  than once during the life of the program.
  - Change install_reaper() so that we can use it to de-install the SIGCHLD
  handler if we need to (and we do in pw_mkdb() -- this is what I get for
  splicing code from two different programs together).
  - Use sigemptyset(&act.sa_mask) rather than act.sa_mask = 0: the latter is
  decidedly non-portable. (In IRIX, HP-UX and Solaris, sigset_t is an
  array of longs, not an int.)
  
  update.c:
  - Roll in change from new version (check that we're not modifying an NIS
  entry in validate_args()).
  - Get rid of call to pw_init() (moved to yppasswdd.c).
  - Check return values from pw_util routines and return error status to
  yppasswd clients if there's a problem.
  - Straighten out password file copying mechanism a little. Keep a grip
  on the original password file rather than summarily overwriting it so
  that we can restore everything if we fail to fork() a process to update
  the NIS maps.
  - Pass the name of the password template file (specified with -m or
  /etc/master.passwd by default) to the yppwupdate script, which in
  turn should now pass it to /var/yp/Makefile.
  
  pw_util.c:
  - Nuke the pw_edit() and pw_prompt() functions -- we don't need them.
  - Change all warn()s, warnx()s and err()s to syslog()s.
  - Make sure we return error status to caller rather than bailing out
  in pw_lock() and pw_tmp().
  - Don't block SIGTERM in pw_init() (by ignoring SIGTERM, we prevent
  yppasswdd from being shut down cleanly).
  - Don't let pw_error() exit. (This stuff was stolen from chpass and vipw
  which are interactive programs; it's okay to let pw_error() bail out
  for these programs, but not in a daemon like yppasswdd).
  - Fix signal handling in pw_mkdb (we need to temporarily de-install the
  SIGCHLD handler so that we can wait on the pwd_mkdb child ourselves).
  
  pw_copy.c:
  - Change all warn()s, warnx()s and err()s to syslog()s.
  - Add a bunch of returns() and make pw_copy() return and int ( 0 on success,
  -1 on failure) so that update.c can flag errors properly.
  - Return -1 after calling pw_error() to signal failures rather than
  relying on pw_error() to bail out.
  - Abort copying if we discover that we've been asked to change an entry
  for a user that exists in the NIS passwd maps but not in the master.passwd
  template file. This can happen if the passwd maps and the template file
  fall out of sync with each other (or if somebody tries to spoof
  us). The old behavior was to create add the entry to the password file,
  which yppasswdd should not do under any circumstances.
  
  Makefile:
  - update VERSION to 0.7
  
  yppasswdd.8:
  - fix typo (forgot a carriage return somewhere)
  - remove bogus reference to pwunconv(8) which FreeBSD doesn't have.
  - bump version from 0.5 to 0.7
  - Reflect changes in password file handling.
  
  yppwupdate:
  - Log map rebuilds to /var/yp/ypupdate.log.
  - Pass the name of the template password file to /var/yp/Makefile as
  $MASTER_PASSWD.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199507191744.KAA02699>