mirror of
git://anongit.mindrot.org/openssh.git
synced 2025-01-27 20:02:48 +00:00
1acc058d0a
Some tests have strict requirements on the filesystem permissions for certain files and directories. This adds a regress/check-perm tool that copies the relevant logic from sshd to exactly test the paths in question. This lets us skip tests when the local filesystem doesn't conform to our expectations rather than continuing and failing the test run. ok dtucker@
32 lines
825 B
Bash
32 lines
825 B
Bash
# $OpenBSD: sftp-chroot.sh,v 1.4 2014/01/20 00:00:30 dtucker Exp $
|
|
# Placed in the Public Domain.
|
|
|
|
tid="sftp in chroot"
|
|
|
|
CHROOT=/var/run
|
|
FILENAME=testdata_${USER}
|
|
PRIVDATA=${CHROOT}/${FILENAME}
|
|
|
|
if [ -z "$SUDO" ]; 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
|