fi
# loop over all lines in the gpg output and process.
- # need to do it this way (as opposed to "while read...") so that
- # variables set in loop will be visible outside of loop
echo "$gpgOut" | cut -d: -f1,2,5,10,12 | \
while IFS=: read -r type validity keyid uidfpr usage ; do
# process based on record type
local nHosts
local nHostsOK
local nHostsBAD
+ local fileCheck
local host
# the number of hosts specified on command line
# create a lockfile on known_hosts
lockfile-create "$KNOWN_HOSTS"
+ # note pre update file checksum
+ fileCheck=$(md5sum "$KNOWN_HOSTS")
+
for host ; do
# process the host
process_host_known_hosts "$host"
lockfile-remove "$KNOWN_HOSTS"
# note if the known_hosts file was updated
- if [ "$nHostsOK" -gt 0 -o "$nHostsBAD" -gt 0 ] ; then
+ if [ "$(md5sum "$KNOWN_HOSTS")" != "$fileCheck" ] ; then
log "known_hosts file updated."
fi
local nIDs
local nIDsOK
local nIDsBAD
+ local fileCheck
# the number of ids specified on command line
nIDs="$#"
# create a lockfile on authorized_keys
lockfile-create "$AUTHORIZED_KEYS"
+ # note pre update file checksum
+ fileCheck=$(md5sum "$AUTHORIZED_KEYS")
+
for userID ; do
# process the user ID, change return code if key not found for
# user ID
lockfile-remove "$AUTHORIZED_KEYS"
# note if the authorized_keys file was updated
- if [ "$nIDsOK" -gt 0 -o "$nIDsBAD" -gt 0 ] ; then
+ if [ "$(md5sum "$AUTHORIZED_KEYS")" != "$fileCheck" ] ; then
log "authorized_keys file updated."
fi
log "processing authorized_user_ids file..."
- if ! meat "$authorizedUserIDs" ; then
+ if ! meat "$authorizedUserIDs" > /dev/null ; then
log "no user IDs to process."
return
fi