X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=tests%2Fbasic;h=dc5edb5bd0c25dee3bd53a10910a218694cf06ee;hb=b35bedeb0f5788345be2f9c1ac7753a3d002cb97;hp=8b4a1ca9cf7cd17146ca474cda4aedbd280870d6;hpb=811990b737bca2bd6ed26f9d002e55a9aa0b0cc2;p=monkeysphere.git diff --git a/tests/basic b/tests/basic index 8b4a1ca..dc5edb5 100755 --- a/tests/basic +++ b/tests/basic @@ -2,7 +2,8 @@ # Tests to ensure that the monkeysphere is working # -# unset MONKEYSPHERE_TEST_NO_EXAMINE to examine +# unset MONKEYSPHERE_TEST_NO_EXAMINE to get a prompt to examine the +# test state after failure. # Authors: # Daniel Kahn Gillmor @@ -46,7 +47,7 @@ On debian-derived systems, you can set this up with: # gpg command for test admin user gpgadmin() { - chmod 0700 "$TEMPDIR"/admin + chmod 0700 "$TEMPDIR"/admin "$TEMPDIR"/admin/.gnupg GNUPGHOME="$TEMPDIR"/admin/.gnupg gpg --no-tty "$@" } @@ -66,7 +67,7 @@ ssh_test() { # wait until the socket is created before continuing while [ ! -S "$SOCKET" ] ; do - sleep 2 + sleep 1 done # make a client connection to the socket @@ -77,6 +78,7 @@ ssh_test() { # kill the sshd process if it's still running kill "$SSHD_PID" || true + wait SSHD_PID= if [ "$RETURN" = "$CODE" ] ; then @@ -88,6 +90,17 @@ ssh_test() { fi } +# invoke this instead of ssh_test() if you want this test to be +# skipped when the working directory has bad permissions. +ssh_good_perm_test() { + if [ "$TEMPDIR_PERMISSIONS_SAFE" = no ] ; then + echo "WARNING!!! Test SKIPPED because we are running in an unsafe working directory." + else + ssh_test "$@" + fi +} + + SSHD_PID= ## setup trap @@ -144,6 +157,41 @@ export SOCKET="$TEMPDIR"/ssh-socket export DISPLAY=monkeys +## we cannot do proper directory permissions checking if the current +## working directory has unsatisfactory permissions: +if ( . "$MONKEYSPHERE_SYSSHAREDIR"/common && check_key_file_permissions $(whoami) "$TEMPDIR" ) ; then + echo "Permissions on temporary directory '$TEMPDIR' are OK for permissions checks." + TEMPDIR_PERMISSIONS_SAFE=yes +else + cat <> "$SSHD_CONFIG" +StrictModes no +EOF +fi + ###################################################################### ### SERVER HOST SETUP @@ -314,7 +370,7 @@ monkeysphere-authentication update-users $(whoami) echo echo "##################################################" echo "### ssh connection test for failure..." -ssh_test 255 +ssh_good_perm_test 255 chmod g-w "$TESTHOME"/.monkeysphere/authorized_user_ids echo echo "##################################################" @@ -324,7 +380,7 @@ monkeysphere-authentication update-users $(whoami) echo echo "##################################################" echo "### ssh connection test for failure..." -ssh_test 255 +ssh_good_perm_test 255 chmod o-w "$TESTHOME"/.monkeysphere/authorized_user_ids monkeysphere-authentication update-users $(whoami) @@ -352,7 +408,7 @@ monkeysphere-authentication update-users $(whoami) echo echo "##################################################" echo "### ssh connection test for failure..." -ssh_test 255 +ssh_good_perm_test 255 chmod o-w "$TESTHOME"/.monkeysphere.linktest echo echo "##################################################" @@ -371,7 +427,7 @@ monkeysphere-authentication update-users $(whoami) echo echo "##################################################" echo "### ssh connection test for failure..." -ssh_test 255 +ssh_good_perm_test 255 chmod o-w "$TESTHOME"/.monkeysphere.linktest # FIXME: implement check of link path, and uncomment this test # echo @@ -382,7 +438,7 @@ chmod o-w "$TESTHOME"/.monkeysphere.linktest # echo # echo "##################################################" # echo "### ssh connection test for failure..." -# ssh_test 255 +# ssh_good_perm_test 255 # chmod o-w "$TESTHOME"/.monkeysphere rm "$TESTHOME"/.monkeysphere/authorized_user_ids mv "$TESTHOME"/.monkeysphere/authorized_user_ids{.bak,} @@ -405,12 +461,12 @@ monkeysphere-authentication update-users $(whoami) echo echo "##################################################" echo "### ssh connection test for failure..." -ssh_test 255 +ssh_good_perm_test 255 chmod o-w "$TESTHOME"/.monkeysphere.linktest echo echo "##################################################" echo "### make .monkeysphere directory a relative symlink and updating..." -ln -sfn .monkeysphere{.linktest,} +ln -sfn .monkeysphere.linktest "$TESTHOME"/.monkeysphere monkeysphere-authentication update-users $(whoami) echo echo "##################################################" @@ -424,7 +480,7 @@ monkeysphere-authentication update-users $(whoami) echo echo "##################################################" echo "### ssh connection test for failure..." -ssh_test 255 +ssh_good_perm_test 255 chmod o-w "$TESTHOME"/.monkeysphere.linktest rm "$TESTHOME"/.monkeysphere mv "$TESTHOME"/.monkeysphere{.bak,}