mirror of
https://github.com/samba-team/samba.git
synced 2025-03-01 04:58:35 +03:00
Add basic DFS tests.
Jeremy.
This commit is contained in:
parent
f3b8e31f83
commit
a1e0e1cbcf
@ -190,6 +190,20 @@ mkdir -p $RO_SHRDIR
|
||||
chmod 755 $RO_SHRDIR
|
||||
touch $RO_SHRDIR/unreadable_file
|
||||
chmod 600 $RO_SHRDIR/unreadable_file
|
||||
##
|
||||
## Create an MS-DFS root share.
|
||||
##
|
||||
MSDFS_SHRDIR=`echo $SHRDIR | sed -e 's:/[^/]*$::'`
|
||||
MSDFS_SHRDIR=$MSDFS_SHRDIR/msdfsshare
|
||||
mkdir -p $MSDFS_SHRDIR
|
||||
chmod 777 $MSDFS_SHRDIR
|
||||
mkdir -p $MSDFS_SHRDIR/deeppath
|
||||
chmod 777 $MSDFS_SHRDIR/deeppath
|
||||
## Create something visible in the target.
|
||||
touch $RO_SHRDIR/msdfs-target
|
||||
chmod 666 $RO_SHRDIR/msdfs-target
|
||||
ln -s msdfs:$SERVER_IP\\ro-tmp $MSDFS_SHRDIR/msdfs-src1
|
||||
ln -s msdfs:$SERVER_IP\\ro-tmp $MSDFS_SHRDIR/deeppath/msdfs-src2
|
||||
|
||||
##
|
||||
## Create the common config include file with the basic settings
|
||||
@ -325,6 +339,10 @@ cat >$SERVERCONFFILE<<EOF
|
||||
[ro-tmp]
|
||||
path = $RO_SHRDIR
|
||||
guest ok = yes
|
||||
[msdfs-share]
|
||||
path = $MSDFS_SHRDIR
|
||||
msdfs root = yes
|
||||
guest ok = yes
|
||||
[hideunread]
|
||||
copy = tmp
|
||||
hide unreadable = yes
|
||||
|
@ -291,6 +291,76 @@ EOF
|
||||
fi
|
||||
}
|
||||
|
||||
# Test accessing an msdfs path.
|
||||
test_msdfs_link()
|
||||
{
|
||||
tmpfile=/tmp/smbclient.in.$$
|
||||
prompt=" msdfs-target "
|
||||
|
||||
cat > $tmpfile <<EOF
|
||||
ls
|
||||
cd \\msdfs-src1
|
||||
ls msdfs-target
|
||||
quit
|
||||
EOF
|
||||
|
||||
cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT $CONFIGURATION "$@" -U$USERNAME%$PASSWORD //$SERVER/msdfs-share -I $SERVER_IP $ADDARGS < $tmpfile 2>&1'
|
||||
eval echo "$cmd"
|
||||
out=`eval $cmd`
|
||||
ret=$?
|
||||
rm -f $tmpfile
|
||||
|
||||
if [ $ret != 0 ] ; then
|
||||
echo "$out"
|
||||
echo "failed accessing \\msdfs-src1 link with error $ret"
|
||||
false
|
||||
return
|
||||
fi
|
||||
|
||||
echo "$out" | grep "$prompt" >/dev/null 2>&1
|
||||
|
||||
ret=$?
|
||||
if [ $ret != 0 ] ; then
|
||||
echo "$out"
|
||||
echo "failed listing \\msdfs-src1 - grep failed with $ret"
|
||||
false
|
||||
fi
|
||||
|
||||
cat > $tmpfile <<EOF
|
||||
ls
|
||||
cd \\deeppath\\msdfs-src2
|
||||
ls msdfs-target
|
||||
quit
|
||||
EOF
|
||||
|
||||
cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT $CONFIGURATION "$@" -U$USERNAME%$PASSWORD //$SERVER/msdfs-share -I $SERVER_IP $ADDARGS < $tmpfile 2>&1'
|
||||
eval echo "$cmd"
|
||||
out=`eval $cmd`
|
||||
ret=$?
|
||||
rm -f $tmpfile
|
||||
|
||||
if [ $ret != 0 ] ; then
|
||||
echo "$out"
|
||||
echo "failed accessing \\deeppath\\msdfs-src2 link with error $ret"
|
||||
false
|
||||
return
|
||||
fi
|
||||
|
||||
echo "$out" | grep "$prompt" >/dev/null 2>&1
|
||||
|
||||
ret=$?
|
||||
if [ $ret != 0 ] ; then
|
||||
echo "$out"
|
||||
echo "failed listing \\deeppath\\msdfs-src2 - grep failed with $ret"
|
||||
false
|
||||
return
|
||||
else
|
||||
true
|
||||
return
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
testit "smbclient -L $SERVER_IP" $SMBCLIENT $CONFIGURATION -L $SERVER_IP -N -p 139 || failed=`expr $failed + 1`
|
||||
testit "smbclient -L $SERVER -I $SERVER_IP" $SMBCLIENT $CONFIGURATION -L $SERVER -I $SERVER_IP -N -p 139 || failed=`expr $failed + 1`
|
||||
|
||||
@ -326,4 +396,8 @@ testit "Reading a owner-only file fails" \
|
||||
test_owner_only_file || \
|
||||
failed=`expr $failed + 1`
|
||||
|
||||
testit "Accessing an MS-DFS link" \
|
||||
test_msdfs_link || \
|
||||
failed=`expr $failed + 1`
|
||||
|
||||
testok $0 $failed
|
||||
|
Loading…
x
Reference in New Issue
Block a user