djm@openbsd.org | dd36932 | 2017-04-30 23:34:55 +0000 | [diff] [blame] | 1 | # $OpenBSD: reexec.sh,v 1.11 2017/04/30 23:34:55 djm Exp $ |
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 2 | # Placed in the Public Domain. |
3 | |||||
4 | tid="reexec tests" | ||||
5 | |||||
Darren Tucker | 59d928d | 2013-05-17 15:32:29 +1000 | [diff] [blame] | 6 | SSHD_ORIG=$SSHD |
7 | SSHD_COPY=$OBJ/sshd | ||||
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 8 | |
9 | # Start a sshd and then delete it | ||||
Darren Tucker | 71b5643 | 2004-12-06 23:05:52 +1100 | [diff] [blame] | 10 | start_sshd_copy () |
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 11 | { |
12 | cp $SSHD_ORIG $SSHD_COPY | ||||
13 | SSHD=$SSHD_COPY | ||||
14 | start_sshd | ||||
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 15 | SSHD=$SSHD_ORIG |
16 | } | ||||
17 | |||||
Darren Tucker | 71b5643 | 2004-12-06 23:05:52 +1100 | [diff] [blame] | 18 | # Do basic copy tests |
19 | copy_tests () | ||||
20 | { | ||||
21 | rm -f ${COPY} | ||||
djm@openbsd.org | dd36932 | 2017-04-30 23:34:55 +0000 | [diff] [blame] | 22 | ${SSH} -nq -F $OBJ/ssh_config somehost \ |
23 | cat ${DATA} > ${COPY} | ||||
24 | if [ $? -ne 0 ]; then | ||||
25 | fail "ssh cat $DATA failed" | ||||
26 | fi | ||||
27 | cmp ${DATA} ${COPY} || fail "corrupted copy" | ||||
28 | rm -f ${COPY} | ||||
Darren Tucker | 71b5643 | 2004-12-06 23:05:52 +1100 | [diff] [blame] | 29 | } |
30 | |||||
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 31 | verbose "test config passing" |
Darren Tucker | 71b5643 | 2004-12-06 23:05:52 +1100 | [diff] [blame] | 32 | |
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 33 | cp $OBJ/sshd_config $OBJ/sshd_config.orig |
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 34 | start_sshd |
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 35 | echo "InvalidXXX=no" >> $OBJ/sshd_config |
36 | |||||
Darren Tucker | 71b5643 | 2004-12-06 23:05:52 +1100 | [diff] [blame] | 37 | copy_tests |
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 38 | |
dtucker@openbsd.org | 2f2ffa4 | 2016-12-16 01:06:27 +0000 | [diff] [blame] | 39 | stop_sshd |
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 40 | |
41 | cp $OBJ/sshd_config.orig $OBJ/sshd_config | ||||
42 | |||||
Darren Tucker | ec1e15d | 2012-07-03 01:06:49 +1000 | [diff] [blame] | 43 | # cygwin can't fork a deleted binary |
44 | if [ "$os" != "cygwin" ]; then | ||||
45 | |||||
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 46 | verbose "test reexec fallback" |
47 | |||||
Darren Tucker | 71b5643 | 2004-12-06 23:05:52 +1100 | [diff] [blame] | 48 | start_sshd_copy |
49 | rm -f $SSHD_COPY | ||||
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 50 | |
Darren Tucker | 71b5643 | 2004-12-06 23:05:52 +1100 | [diff] [blame] | 51 | copy_tests |
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 52 | |
dtucker@openbsd.org | 2f2ffa4 | 2016-12-16 01:06:27 +0000 | [diff] [blame] | 53 | stop_sshd |
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 54 | |
55 | verbose "test reexec fallback without privsep" | ||||
56 | |||||
57 | cp $OBJ/sshd_config.orig $OBJ/sshd_config | ||||
58 | echo "UsePrivilegeSeparation=no" >> $OBJ/sshd_config | ||||
59 | |||||
Darren Tucker | 71b5643 | 2004-12-06 23:05:52 +1100 | [diff] [blame] | 60 | start_sshd_copy |
61 | rm -f $SSHD_COPY | ||||
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 62 | |
Darren Tucker | 71b5643 | 2004-12-06 23:05:52 +1100 | [diff] [blame] | 63 | copy_tests |
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 64 | |
dtucker@openbsd.org | 2f2ffa4 | 2016-12-16 01:06:27 +0000 | [diff] [blame] | 65 | stop_sshd |
Darren Tucker | 977a9d2 | 2004-06-25 13:45:18 +1000 | [diff] [blame] | 66 | |
Darren Tucker | ec1e15d | 2012-07-03 01:06:49 +1000 | [diff] [blame] | 67 | fi |