openssh/regress/sftp-chroot.sh
bluhm@openbsd.org ce44c970f9 upstream commit
Allow to run ssh regression tests as root.  If the user
is already root, the test should not expect that SUDO is set.  If ssh needs
another user, use sudo or doas to switch from root if necessary. OK dtucker@

Upstream-Regress-ID: b464e55185ac4303529e3e6927db41683aaeace2
2016-10-01 06:44:00 +10:00

32 lines
840 B
Bash

# $OpenBSD: sftp-chroot.sh,v 1.5 2016/09/26 21:34:38 bluhm Exp $
# Placed in the Public Domain.
tid="sftp in chroot"
CHROOT=/var/run
FILENAME=testdata_${USER}
PRIVDATA=${CHROOT}/${FILENAME}
if [ -z "$SUDO" -a ! -w /var/run ]; then
echo "skipped: need SUDO to create file in /var/run, test won't work without"
exit 0
fi
if ! $OBJ/check-perm -m chroot "$CHROOT" ; then
echo "skipped: $CHROOT is unsuitable as ChrootDirectory"
exit 0
fi
$SUDO sh -c "echo mekmitastdigoat > $PRIVDATA" || \
fatal "create $PRIVDATA failed"
start_sshd -oChrootDirectory=$CHROOT -oForceCommand="internal-sftp -d /"
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"
$SUDO rm $PRIVDATA