2012-06-26 14:59:25 +04:00
#!/bin/sh
# Blackbox tests for pdbtest
# Copyright (C) 2006-2007 Jelmer Vernooij <jelmer@samba.org>
# Copyright (C) 2006-2012 Andrew Bartlett <abartlet@samba.org>
if [ $# -lt 2 ] ; then
cat <<EOF
2012-06-28 15:21:23 +04:00
Usage: test_pdbtest.sh SERVER PREFIX SMBCLIENT SMB_CONF
2012-06-26 14:59:25 +04:00
EOF
exit 1;
fi
SERVER = $1
PREFIX = $2
smbclient = $3
2012-06-28 15:21:23 +04:00
SMB_CONF = $4
2012-06-26 14:59:25 +04:00
shift 4
failed = 0
samba4bindir = " $BINDIR "
pdbtest = " $samba4bindir /pdbtest "
pdbedit = " $samba4bindir /pdbedit "
net = " $samba4bindir /net "
smbpasswd = " $samba4bindir /smbpasswd "
rkpty = " $samba4bindir /rkpty "
. ` dirname $0 ` /subunit.sh
test_smbclient( ) {
name = " $1 "
cmd = " $2 "
shift
shift
echo " test: $name "
$VALGRIND $smbclient $CONFIGURATION //$SERVER /tmp -c " $cmd " $@
status = $?
if [ x$status = x0 ] ; then
echo " success: $name "
else
echo " failure: $name "
fi
return $status
}
testit "pdbtest" $BINDIR /pdbtest -u pdbtest || failed = ` expr $failed + 1`
NEWUSERPASS = testPaSS@01%
echo "set password with pdbedit"
cat > ./tmpsmbpasswdscript <<EOF
expect new password:
send ${ NEWUSERPASS } \n
expect retype new password:
send ${ NEWUSERPASS } \n
EOF
testit "create user with pdbedit" $rkpty ./tmpsmbpasswdscript $VALGRIND $pdbedit -a pdbtest --account-desc= "pdbedit-test-user" $@ || failed = ` expr $failed + 1`
USERPASS = $NEWUSERPASS
test_smbclient "Test login with user (ntlm)" 'ls' -k no -Updbtest%$NEWUSERPASS $@ || failed = ` expr $failed + 1`
testit "modify user" $VALGRIND $pdbedit --modify pdbtest --drive= "D:" $@ || failed = ` expr $failed + 1`
test_smbclient "Test login with user (ntlm)" 'ls' -k no -Updbtest%$NEWUSERPASS $@ || failed = ` expr $failed + 1`
NEWUSERPASS = testPaSS@02%
echo "set password with smbpasswd"
cat > ./tmpsmbpasswdscript <<EOF
expect New SMB password:
send ${ NEWUSERPASS } \n
expect Retype new SMB password:
send ${ NEWUSERPASS } \n
EOF
2012-06-28 15:21:23 +04:00
testit "set user password with smbpasswd" $rkpty ./tmpsmbpasswdscript $smbpasswd -L pdbtest -c $SMB_CONF || failed = ` expr $failed + 1`
2012-06-26 14:59:25 +04:00
USERPASS = $NEWUSERPASS
test_smbclient "Test login with user (ntlm)" 'ls' -k no -Updbtest%$NEWUSERPASS $@ || failed = ` expr $failed + 1`
testit "modify user - disabled" $VALGRIND $net sam set disabled pdbtest yes $@ || failed = ` expr $failed + 1`
testit_expect_failure "Test login with disabled suer" $VALGRIND $smbclient //$SERVER /tmp -c 'ls' -k no -Updbtest@%$USERPASS && failed = ` expr $failed + 1`
testit "modify user - enabled" $VALGRIND $net sam set disabled pdbtest no $@ || failed = ` expr $failed + 1`
test_smbclient "Test login with re-enabled user (ntlm)" 'ls' -k no -Updbtest%$NEWUSERPASS || failed = ` expr $failed + 1`
testit "modify user - must change password now" $VALGRIND $net sam set pwdmustchangenow pdbtest yes $@ || failed = ` expr $failed + 1`
testit_expect_failure "Test login with expired password" $VALGRIND $smbclient //$SERVER /tmp -c 'ls' -k no -Updbtest@%$USERPASS && failed = ` expr $failed + 1`
testit "modify user - disable password expiry" $VALGRIND $net sam set pwnoexp pdbtest yes $@ || failed = ` expr $failed + 1`
test_smbclient "Test login with no expiry (ntlm)" 'ls' -k no -Updbtest%$NEWUSERPASS || failed = ` expr $failed + 1`
testit "del user" $VALGRIND $pdbedit -x pdbtest $@ || failed = ` expr $failed + 1`
rm ./tmpsmbpasswdscript
exit $failed