add some checks about setup to authentication
authorJameson Graef Rollins <jrollins@finestructure.net>
Tue, 17 Feb 2009 20:19:40 +0000 (15:19 -0500)
committerJameson Graef Rollins <jrollins@finestructure.net>
Tue, 17 Feb 2009 20:19:40 +0000 (15:19 -0500)
man/man8/monkeysphere-authentication.8
src/monkeysphere-authentication
src/share/ma/setup

index 4187c701a6c5abeafa786f33104ffc8cf3db0b10..9b8baa9960d7d1940c9519dd6b25ebe38682bc7a 100644 (file)
@@ -24,8 +24,10 @@ authentication.
 \fBmonkeysphere-authentication\fP takes various subcommands.
 .TP
 .B setup
-Setup the server for Monkeysphere user authentication.  `s' may be
-used in place of `setup'.
+Setup the server for Monkeysphere user authentication.  This command
+is idempotent, which means it can be run multiple times to make sure
+the setup is correct, without adversely affecting existing setups.
+`s' may be used in place of `setup'.
 .TP
 .B update-users [ACCOUNT]...
 Rebuild the monkeysphere-controlled authorized_keys files.  For each
index 465777d74713aa1202f087df997a57a78d8c443e..60cb5f212bedcde363fae9d55998da20d396169a 100755 (executable)
@@ -95,6 +95,14 @@ core_fingerprint() {
        | grep ^fpr: | cut -d: -f10
 }
 
+# fail if authentication has not been setup
+check_no_setup() {
+    # FIXME: what is the right test to do here?
+    [ -d "$MADATADIR" ] \
+       || failure "This host appears to have not yet been set up for Monkeysphere authentication.
+Please run 'monkeysphere-authentication setup' first."
+}
+
 # export signatures from core to sphere
 gpg_core_sphere_sig_transfer() {
     log debug "exporting core local sigs to sphere..."
@@ -155,21 +163,25 @@ case $COMMAND in
        ;;
 
     'update-users'|'update-user'|'u')
+       check_no_setup
        source "${MASHAREDIR}/update_users"
        update_users "$@"
        ;;
 
     'add-identity-certifier'|'add-id-certifier'|'add-certifier'|'c+')
+       check_no_setup
        source "${MASHAREDIR}/add_certifier"
        add_certifier "$@"
        ;;
 
     'remove-identity-certifier'|'remove-id-certifier'|'remove-certifier'|'c-')
+       check_no_setup
        source "${MASHAREDIR}/remove_certifier"
        remove_certifier "$@"
        ;;
 
     'list-identity-certifiers'|'list-id-certifiers'|'list-certifiers'|'list-certifier'|'c')
+       check_no_setup
        source "${MASHAREDIR}/list_certifiers"
        list_certifiers "$@"
        ;;
@@ -180,6 +192,7 @@ case $COMMAND in
        ;;
 
     'gpg-cmd')
+       check_no_setup
        gpg_sphere "$@"
        ;;
 
index 02fc0695cb093180ede4e6b1c489172dc523319f..f59187b8447bbfab4205e4e4bcfe2a4328f12eae 100644 (file)
@@ -70,7 +70,7 @@ EOF
        fi
        
     else 
-       log verbose "This system has already set up the Monkeysphere authentication trust core."
+       log verbose "Monkeysphere authentication trust core already exists."
     fi
 
     # export the core key to the sphere keyring
@@ -91,6 +91,7 @@ EOF
        fi
     else
        failure "Could not get monkeysphere-authentication trust guidelines."
+       # FIXME: what does this mean?  should we suggest how to fix?
     fi
 
     # ensure that we're using the extended trust model (1), and that
@@ -102,5 +103,6 @@ EOF
     log debug "sphere trust model: $TRUST_MODEL"
     if [ "$TRUST_MODEL" != '1:3:1' ] ; then
        failure "monkeysphere-authentication does not have the expected trust model settings."
+       # FIXME: what does this mean?  should we suggest how to fix?
     fi
 }