2018-02-09 03:42:57 +00:00
|
|
|
# $OpenBSD: sftp-chroot.sh,v 1.6 2018/02/09 03:42:57 dtucker Exp $
|
2013-05-16 23:35:26 +00:00
|
|
|
# Placed in the Public Domain.
|
|
|
|
|
|
|
|
tid="sftp in chroot"
|
|
|
|
|
|
|
|
CHROOT=/var/run
|
|
|
|
FILENAME=testdata_${USER}
|
|
|
|
PRIVDATA=${CHROOT}/${FILENAME}
|
|
|
|
|
2016-09-26 21:34:38 +00:00
|
|
|
if [ -z "$SUDO" -a ! -w /var/run ]; then
|
2018-02-09 03:42:57 +00:00
|
|
|
echo "need SUDO to create file in /var/run, test won't work without"
|
|
|
|
echo SKIPPED
|
|
|
|
exit 0
|
2013-05-16 23:35:26 +00:00
|
|
|
fi
|
|
|
|
|
2016-02-23 05:12:13 +00:00
|
|
|
if ! $OBJ/check-perm -m chroot "$CHROOT" ; then
|
|
|
|
echo "skipped: $CHROOT is unsuitable as ChrootDirectory"
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
2013-05-16 23:35:26 +00:00
|
|
|
$SUDO sh -c "echo mekmitastdigoat > $PRIVDATA" || \
|
|
|
|
fatal "create $PRIVDATA failed"
|
|
|
|
|
|
|
|
start_sshd -oChrootDirectory=$CHROOT -oForceCommand="internal-sftp -d /"
|
|
|
|
|
|
|
|
verbose "test $tid: get"
|
2014-02-27 23:19:11 +00:00
|
|
|
${SFTP} -S "$SSH" -F $OBJ/ssh_config host:/${FILENAME} $COPY \
|
2014-02-27 23:19:51 +00:00
|
|
|
>>$TEST_REGRESS_LOGFILE 2>&1 || \
|
2013-05-16 23:35:26 +00:00
|
|
|
fatal "Fetch ${FILENAME} failed"
|
|
|
|
cmp $PRIVDATA $COPY || fail "$PRIVDATA $COPY differ"
|
|
|
|
|
|
|
|
$SUDO rm $PRIVDATA
|