summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2023-05-12 06:37:42 +0000
committerDamien Miller <djm@mindrot.org>2023-07-30 11:18:09 +1000
commit8eb8899d612440a9b608bee7f916081d3d0b7812 (patch)
treeb469ef61f3e6293eeaee66f3ca2011a40a832b5c
parente43f43d3f19516222e9a143468ea0dc1b3ab67b6 (diff)
upstream: test ChrootDirectory in Match block
-rw-r--r--regress/sftp-chroot.sh23
1 files changed, 21 insertions, 2 deletions
diff --git a/regress/sftp-chroot.sh b/regress/sftp-chroot.sh
index a7766fe6..8a301489 100644
--- a/regress/sftp-chroot.sh
+++ b/regress/sftp-chroot.sh
@@ -1,4 +1,4 @@
-# $OpenBSD: sftp-chroot.sh,v 1.8 2021/09/01 00:50:27 dtucker Exp $
+# $OpenBSD: sftp-chroot.sh,v 1.9 2023/05/12 06:37:42 djm Exp $
# Placed in the Public Domain.
tid="sftp in chroot"
@@ -19,10 +19,29 @@ fi
$SUDO sh -c "echo mekmitastdigoat > $PRIVDATA" || \
fatal "create $PRIVDATA failed"
-start_sshd -oChrootDirectory=$CHROOT -oForceCommand="internal-sftp -d /"
+echo "ForceCommand internal-sftp -d /" >> $OBJ/sshd_config
+
+start_sshd -oChrootDirectory=$CHROOT
verbose "test $tid: get"
${SFTP} -S "$SSH" -F $OBJ/ssh_config host:/${FILENAME} $COPY \
>>$TEST_REGRESS_LOGFILE 2>&1 || \
fatal "Fetch ${FILENAME} failed"
cmp $PRIVDATA $COPY || fail "$PRIVDATA $COPY differ"
+
+stop_sshd
+
+verbose "test $tid: match"
+cat << EOF >> $OBJ/sshd_config
+Match All
+ ChrootDirectory $CHROOT
+EOF
+start_sshd
+$SUDO sh -c "echo orpheanbeholder > $PRIVDATA" || \
+ fatal "create $PRIVDATA failed"
+${SFTP} -S "$SSH" -F $OBJ/ssh_config host:/${FILENAME} $COPY \
+ >>$TEST_REGRESS_LOGFILE 2>&1 || \
+ fatal "Fetch ${FILENAME} failed"
+cmp $PRIVDATA $COPY || fail "$PRIVDATA $COPY differ"
+
+stop_sshd