The branch, master has been updated via 3c0f934 tests: Add regression test for s3-passdb: Respect LOOKUP_NAME_GROUP flag in sid lookup. from 8c41cbb s3:smb2_server: defer channel/session validation to the session setup code.
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 3c0f9340e6c691e25ee2d188ac2a9c85feb797fe Author: Jeremy Allison <j...@samba.org> Date: Tue Jul 28 11:28:20 2015 -0700 tests: Add regression test for s3-passdb: Respect LOOKUP_NAME_GROUP flag in sid lookup. BUG: https://bugzilla.samba.org/show_bug.cgi?id=11320 Signed-off-by: Jeremy Allison <j...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Thu Jul 30 00:36:14 CEST 2015 on sn-devel-104 ----------------------------------------------------------------------- Summary of changes: selftest/target/Samba3.pm | 30 ++++++++++++-- source3/script/tests/test_valid_users.sh | 70 ++++++++++++++++++++++++++++++++ source3/selftest/tests.py | 1 + 3 files changed, 97 insertions(+), 4 deletions(-) create mode 100755 source3/script/tests/test_valid_users.sh Changeset truncated at 500 lines: diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index 9af8faa..7ceb4fa 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -583,6 +583,9 @@ sub setup_fileserver($$) my $dfree_share_dir="$share_dir/dfree"; push(@dirs, $dfree_share_dir); + my $valid_users_sharedir="$share_dir/valid_users"; + push(@dirs,$valid_users_sharedir); + my $fileserver_options = " [lowercase] path = $lower_case_share_dir @@ -602,11 +605,14 @@ sub setup_fileserver($$) path = $dfree_share_dir comment = smb username is [%U] dfree command = $srcdir_abs/testprogs/blackbox/dfree.sh +[valid-users-access] + path = $valid_users_sharedir + valid users = +SAMBA-TEST/userdup "; my $vars = $self->provision($path, "FILESERVER", - "fileserver_secret", + "fileserver", $fileserver_options, undef, undef, @@ -656,6 +662,17 @@ sub setup_fileserver($$) close $fh; } + ## + ## create a listable file in valid_users_share + ## + my $valid_users_target = "$valid_users_sharedir/foo"; + unless (open(VALID_USERS_TARGET, ">$valid_users_target")) { + warn("Unable to open $valid_users_target"); + return undef; + } + close(VALID_USERS_TARGET); + chmod 0644, $valid_users_target; + return $vars; } @@ -1193,10 +1210,11 @@ sub provision($$$$$$$$) ## my ($max_uid, $max_gid); - my ($uid_nobody, $uid_root, $uid_pdbtest, $uid_pdbtest2); + my ($uid_nobody, $uid_root, $uid_pdbtest, $uid_pdbtest2, $uid_userdup); my ($gid_nobody, $gid_nogroup, $gid_root, $gid_domusers, $gid_domadmins); + my ($gid_userdup); - if ($unix_uid < 0xffff - 4) { + if ($unix_uid < 0xffff - 5) { $max_uid = 0xffff; } else { $max_uid = $unix_uid; @@ -1206,8 +1224,9 @@ sub provision($$$$$$$$) $uid_nobody = $max_uid - 2; $uid_pdbtest = $max_uid - 3; $uid_pdbtest2 = $max_uid - 4; + $uid_userdup = $max_uid - 5; - if ($unix_gids[0] < 0xffff - 5) { + if ($unix_gids[0] < 0xffff - 6) { $max_gid = 0xffff; } else { $max_gid = $unix_gids[0]; @@ -1218,6 +1237,7 @@ sub provision($$$$$$$$) $gid_root = $max_gid - 3; $gid_domusers = $max_gid - 4; $gid_domadmins = $max_gid - 5; + $gid_userdup = $max_gid - 6; ## ## create conffile @@ -1488,6 +1508,7 @@ sub provision($$$$$$$$) $unix_name:x:$unix_uid:$unix_gids[0]:$unix_name gecos:$prefix_abs:/bin/false pdbtest:x:$uid_pdbtest:$gid_nogroup:pdbtest gecos:$prefix_abs:/bin/false pdbtest2:x:$uid_pdbtest2:$gid_nogroup:pdbtest gecos:$prefix_abs:/bin/false +userdup:x:$uid_userdup:$gid_userdup:userdup gecos:$prefix_abs:/bin/false "; if ($unix_uid != 0) { print PASSWD "root:x:$uid_root:$gid_root:root gecos:$prefix_abs:/bin/false @@ -1504,6 +1525,7 @@ nogroup:x:$gid_nogroup:nobody $unix_name-group:x:$unix_gids[0]: domusers:X:$gid_domusers: domadmins:X:$gid_domadmins: +userdup:x:$gid_userdup:$unix_name "; if ($unix_gids[0] != 0) { print GROUP "root:x:$gid_root: diff --git a/source3/script/tests/test_valid_users.sh b/source3/script/tests/test_valid_users.sh new file mode 100755 index 0000000..a7f9333 --- /dev/null +++ b/source3/script/tests/test_valid_users.sh @@ -0,0 +1,70 @@ +#!/bin/sh +# +# Blackbox test for valid users. +# + +if [ $# -lt 7 ]; then +cat <<EOF +Usage: valid_users SERVER SERVER_IP DOMAIN USERNAME PASSWORD PREFIX SMBCLIENT +EOF +exit 1; +fi + +SERVER=${1} +SERVER_IP=${2} +DOMAIN=${3} +USERNAME=${4} +PASSWORD=${5} +PREFIX=${6} +SMBCLIENT=${7} +shift 7 +SMBCLIENT="$VALGRIND ${SMBCLIENT}" +ADDARGS="$*" + +incdir=`dirname $0`/../../../testprogs/blackbox +. $incdir/subunit.sh + +failed=0 + +# Test listing a share with valid users succeeds +test_valid_users_access() +{ + tmpfile=$PREFIX/smbclient.in.$$ + prompt="foo" + cat > $tmpfile <<EOF +ls +quit +EOF + + cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT -U$USERNAME%$PASSWORD "//$SERVER/$1" -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 share with valid users with error $ret" + + false + return + fi + + echo "$out" | grep "$prompt" >/dev/null 2>&1 + + ret=$? + if [ $ret = 0 ] ; then + # got the correct prompt .. succeed + true + else + echo "$out" + echo "failed listing share with valid users" + false + fi +} + +testit "accessing a valid users share succeeds" \ + test_valid_users_access valid-users-access || \ + failed=`expr $failed + 1` + +exit $failed diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index 1833b9f..58f2190 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -177,6 +177,7 @@ for env in ["nt4_dc"]: for env in ["fileserver"]: plantestsuite("samba3.blackbox.preserve_case (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_preserve_case.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3]) plantestsuite("samba3.blackbox.dfree_command (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_dfree_command.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3]) + plantestsuite("samba3.blackbox.valid_users (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_valid_users.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$PREFIX', smbclient3]) # # tar command tests -- Samba Shared Repository