X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=src%2Fcommon;h=ba7df7320f69275f81e1d80cae4892649f95fcf2;hb=ce1111775aa0e23680932508c2b31e8091ff8beb;hp=b57b721bee797d6ad7b21cd9daaf93d42b08555c;hpb=b19edbe67505aefc755670af4aae0b9ce4269544;p=monkeysphere.git diff --git a/src/common b/src/common index b57b721..ba7df73 100644 --- a/src/common +++ b/src/common @@ -319,8 +319,6 @@ process_user_id() { 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 @@ -500,6 +498,7 @@ update_known_hosts() { local nHosts local nHostsOK local nHostsBAD + local fileCheck local host # the number of hosts specified on command line @@ -514,6 +513,9 @@ update_known_hosts() { # 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" @@ -535,7 +537,7 @@ update_known_hosts() { 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 @@ -563,6 +565,11 @@ process_known_hosts() { hosts=$(meat "$KNOWN_HOSTS" | cut -d ' ' -f 1 | grep -v '^|.*$' | tr , ' ' | tr '\n' ' ') + if [ -z "$hosts" ] ; then + log "no hosts to process." + return + fi + # take all the hosts from the known_hosts file (first # field), grep out all the hashed hosts (lines starting # with '|')... @@ -631,6 +638,7 @@ update_authorized_keys() { local nIDs local nIDsOK local nIDsBAD + local fileCheck # the number of ids specified on command line nIDs="$#" @@ -644,6 +652,9 @@ update_authorized_keys() { # 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 @@ -667,7 +678,7 @@ update_authorized_keys() { 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 @@ -697,6 +708,11 @@ process_authorized_user_ids() { log "processing authorized_user_ids file..." + if ! meat "$authorizedUserIDs" > /dev/null ; then + log "no user IDs to process." + return + fi + nline=0 # extract user IDs from authorized_user_ids file