[mod.computers.vax] Updating passwords on an inhomogeneous cluster

KARNEY%PPC.MFENET@LLL-MFE.ARPA.UUCP (07/21/86)

I have written a Pascal password updating program for an inhomogenous
VAX/VMS cluster.  This updates the passwords for the individual running the
program.  At the end of this message is the comment at the beginning of
program, which tells you a little more about it.  I can mail this program
to anyone who wants it.  (The source files are about 300 lines
altogether--a little too long to send to the whole of INFO-VAX.)
                        ---Charles Karney
                           Karney%PPC@MFE.ARPA
                           Plasma Physics Lab.
                           Princeton Univ.
                           Princeton, NJ
(*
                                  SETPASS

Updates password for user according to most recently set password.  Written
by Charles Karney (Karney%PPC@MFE.ARPA), Princeton Plasma Physics Lab.,
July 18, 1986.  The SYSUAFDEF file and a couple of functions here were
borrowed from Ned Freed's DELIVER program.

This program reads the SYSUAF files for all the members of the cluster,
determines which member has the most up-to-date password, and then copies
the password, password date, and password-expired flag, from that SYSUAF
file to those with older password dates.  Running this program a second
time then does nothing, since all the dates are equal.

The computer names are given by the array host_name.  The location of the
SYSUAF files is assumed to be SYS$SYSDEVICE:[host_loc.SYSEXE]SYSUAF.DAT,
where host_loc is given be the array host_loc.

This needs SYSPRV to run.  An attempt is made to prevent users from
screwing themselves and others.  Please let me know if you know how to make
this more foolproof.

Because all the SYSUAF records are open and locked simultaneously, the
program may fail to open some of them if the Enqlm quota is too small.  The
symptom of this is the program claiming that some password records don't
exist.  (I know that Enqlm=30 is too small when host_num=5.)

An obvious extension of this program is to allow it to update all the user
passwords.  This could then be run periodically (e.g., once a day) by an
operator.
*)