if backup of shadow file does not exist: a) copy shadow file to backup name b) exit else a) read in shadow file into a hash userid => encrypted password b) read in backup shadow file into a hash userid => encrypted password c) loop through shadow hash 1) push userid into changed array if password fields do not match 2) push userid into new id array if userid does not exist in backup hash d) copy present file into backup file e) email results