X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=src%2Fmonkeysphere-host;h=9dcd331d51c41c4577e17a919c36821e35faf638;hb=80f608dfb8cd0a59609f3c98834e44f0c78fffb0;hp=9e4a8c4e4723ac891bc2e5cbbbe5b808b5e29f1c;hpb=620e3d1021993760ef7572ed9e5d6bf9f033b91e;p=monkeysphere.git diff --git a/src/monkeysphere-host b/src/monkeysphere-host index 9e4a8c4..9dcd331 100755 --- a/src/monkeysphere-host +++ b/src/monkeysphere-host @@ -21,7 +21,8 @@ PGRM=$(basename $0) SYSSHAREDIR=${MONKEYSPHERE_SYSSHAREDIR:-"/usr/share/monkeysphere"} export SYSSHAREDIR -. "${SYSSHAREDIR}/common" || exit 1 +. "${SYSSHAREDIR}/defaultenv" +. "${SYSSHAREDIR}/common" SYSDATADIR=${MONKEYSPHERE_SYSDATADIR:-"/var/lib/monkeysphere"} export SYSDATADIR @@ -57,7 +58,7 @@ subcommands: set-expire (e) [EXPIRE] set host key expiration add-hostname (n+) NAME[:PORT] add hostname user ID to host key revoke-hostname (n-) NAME[:PORT] revoke hostname user ID - add-revoker (r+) [KEYID|FILE] add a revoker to the host key + add-revoker (r+) KEYID|FILE add a revoker to the host key revoke-key generate and/or publish revocation certificate for host key @@ -102,7 +103,7 @@ update_gpg_pub_file() { load_fingerprint() { if [ -f "$HOST_KEY_FILE" ] ; then HOST_FINGERPRINT=$( \ - (FUBAR=$(mktemp -d) && export GNUPGHOME="$FUBAR" \ + (FUBAR=$(msmktempdir) && export GNUPGHOME="$FUBAR" \ && gpg --quiet --import \ && gpg --quiet --list-keys --with-colons --with-fingerprint \ && rm -rf "$FUBAR") <"$HOST_KEY_FILE" \ @@ -133,28 +134,18 @@ check_host_no_key() { Please run 'monkeysphere-host import-key...' first." } -# output the index of a user ID on the host key -# return 1 if user ID not found +# return 0 if user ID was found. +# return 1 if user ID not found. find_host_userid() { local userID="$1" local tmpuidMatch - local line - # match to only ultimately trusted user IDs - tmpuidMatch="u:$(echo $userID | gpg_escape)" + # match to only "unknown" user IDs (host has no need for ultimate trust) + tmpuidMatch="uid:-:$(echo $userID | gpg_escape)" - # find the index of the requsted user ID - # NOTE: this is based on circumstantial evidence that the order of - # this output is the appropriate index - line=$(gpg_host_list | egrep '^(uid|uat):' | cut -f2,10 -d: | \ - grep -n -x -F "$tmpuidMatch" 2>/dev/null) - - if [ "$line" ] ; then - echo ${line%%:*} - return 0 - else - return 1 - fi + # See whether the requsted user ID is present + gpg_host_list | cut -f1,2,10 -d: | \ + grep -q -x -F "$tmpuidMatch" 2>/dev/null } # show info about the host key @@ -225,10 +216,12 @@ LOG_LEVEL=${MONKEYSPHERE_LOG_LEVEL:=$LOG_LEVEL} KEYSERVER=${MONKEYSPHERE_KEYSERVER:=$KEYSERVER} CHECK_KEYSERVER=${MONKEYSPHERE_CHECK_KEYSERVER:=$CHECK_KEYSERVER} MONKEYSPHERE_USER=${MONKEYSPHERE_MONKEYSPHERE_USER:=$MONKEYSPHERE_USER} +MONKEYSPHERE_GROUP=$(get_primary_group "$MONKEYSPHERE_USER") PROMPT=${MONKEYSPHERE_PROMPT:=$PROMPT} # other variables GNUPGHOME_HOST=${MONKEYSPHERE_GNUPGHOME_HOST:="${MHDATADIR}"} +LOG_PREFIX=${MONKEYSPHERE_LOG_PREFIX:='ms: '} # export variables needed in su invocation export DATE @@ -236,10 +229,12 @@ export LOG_LEVEL export KEYSERVER export CHECK_KEYSERVER export MONKEYSPHERE_USER +export MONKEYSPHERE_GROUP export PROMPT export GNUPGHOME_HOST export GNUPGHOME export HOST_FINGERPRINT +export LOG_PREFIX # get subcommand COMMAND="$1" @@ -301,6 +296,7 @@ case $COMMAND in ;; 'diagnostics'|'d') + check_host_no_key load_fingerprint source "${MHSHAREDIR}/diagnostics" diagnostics