The branch, master has been updated via e269968 samba3.blackbox.smbclient.forceuser_validusers: Add new test for force user option. from 498383a lib:socket: fix CID 1350010 - integer OVERFLOW_BEFORE_WIDEN
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit e2699685cad6fc341079ac4a677df8d6be26e9d9 Author: Robin Hack <rh...@redhat.com> Date: Fri Dec 4 14:50:56 2015 +0100 samba3.blackbox.smbclient.forceuser_validusers: Add new test for force user option. Test covers commit cf0934caf282f4ade8c8a701b0e40b68a2f17ace BUG: https://bugzilla.samba.org/show_bug.cgi?id=9878 RH BUG: https://bugzilla.redhat.com/show_bug.cgi?id=1077651 How to test: $ make -j test TESTS="samba3.blackbox.smbclient.forceuser_validusers" RESULD: Should PASS $ git revert cf0934caf282f4ade8c8a701b0e40b68a2f17ace $ make -j test TESTS="samba3.blackbox.smbclient.forceuser_validusers" RESULT: Should FAIL Signed-off-by: Robin Hack <rh...@redhat.com> Reviewed-by: Uri Simchoni <u...@samba.org> Reviewed-by: Andreas Schneider <a...@samba.org> Autobuild-User(master): Uri Simchoni <u...@samba.org> Autobuild-Date(master): Thu Feb 4 03:44:42 CET 2016 on sn-devel-144 ----------------------------------------------------------------------- Summary of changes: selftest/target/Samba3.pm | 35 +++++++++++++- source3/script/tests/test_forceuser_validusers.sh | 59 +++++++++++++++++++++++ source3/selftest/tests.py | 1 + 3 files changed, 93 insertions(+), 2 deletions(-) create mode 100755 source3/script/tests/test_forceuser_validusers.sh Changeset truncated at 500 lines: diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index 5002a81..076bcb1 100755 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -599,6 +599,9 @@ sub setup_fileserver($$) my $offline_sharedir="$share_dir/offline"; push(@dirs,$offline_sharedir); + my $force_user_valid_users_dir = "$share_dir/force_user_valid_users"; + push(@dirs, $force_user_valid_users_dir); + my $fileserver_options = " [lowercase] path = $lower_case_share_dir @@ -624,6 +627,16 @@ sub setup_fileserver($$) [offline] path = $offline_sharedir vfs objects = offline + +# BUG: https://bugzilla.samba.org/show_bug.cgi?id=9878 +# RH BUG: https://bugzilla.redhat.com/show_bug.cgi?id=1077651 +[force_user_valid_users] + path = $force_user_valid_users_dir + comment = force user with valid users combination test share + valid users = +force_user + force user = force_user + force group = everyone + write list = force_user "; my $vars = $self->provision($path, @@ -1266,10 +1279,12 @@ sub provision($$$$$$$$) my ($max_uid, $max_gid); my ($uid_nobody, $uid_root, $uid_pdbtest, $uid_pdbtest2, $uid_userdup); my ($uid_pdbtest_wkn); + my ($uid_force_user); my ($gid_nobody, $gid_nogroup, $gid_root, $gid_domusers, $gid_domadmins); my ($gid_userdup, $gid_everyone); + my ($gid_force_user); - if ($unix_uid < 0xffff - 5) { + if ($unix_uid < 0xffff - 7) { $max_uid = 0xffff; } else { $max_uid = $unix_uid; @@ -1281,8 +1296,9 @@ sub provision($$$$$$$$) $uid_pdbtest2 = $max_uid - 4; $uid_userdup = $max_uid - 5; $uid_pdbtest_wkn = $max_uid - 6; + $uid_force_user = $max_uid - 7; - if ($unix_gids[0] < 0xffff - 7) { + if ($unix_gids[0] < 0xffff - 8) { $max_gid = 0xffff; } else { $max_gid = $unix_gids[0]; @@ -1295,6 +1311,7 @@ sub provision($$$$$$$$) $gid_domadmins = $max_gid - 5; $gid_userdup = $max_gid - 6; $gid_everyone = $max_gid - 7; + $gid_force_user = $max_gid - 8; ## ## create conffile @@ -1659,6 +1676,7 @@ 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 pdbtest_wkn:x:$uid_pdbtest_wkn:$gid_everyone:pdbtest_wkn gecos:$prefix_abs:/bin/false +force_user:x:$uid_force_user:$gid_force_user:force user gecos:$prefix_abs:/bin/false "; if ($unix_uid != 0) { print PASSWD "root:x:$uid_root:$gid_root:root gecos:$prefix_abs:/bin/false @@ -1677,6 +1695,7 @@ domusers:X:$gid_domusers: domadmins:X:$gid_domadmins: userdup:x:$gid_userdup:$unix_name everyone:x:$gid_everyone: +force_user:x:$gid_force_user: "; if ($unix_gids[0] != 0) { print GROUP "root:x:$gid_root: @@ -1739,6 +1758,18 @@ everyone:x:$gid_everyone: warn("Unable to set password for test account\n$cmd"); return undef; } + + # Add another user named: force_user + my $cmd = "UID_WRAPPER_ROOT=1 " . Samba::bindir_path($self, "smbpasswd")." -c $conffile -L -s -a force_user > /dev/null"; + unless (open(PWD, "|$cmd")) { + warn("Unable to set password for test account force_user\n$cmd"); + return undef; + } + print PWD "$password\n$password\n"; + unless (close(PWD)) { + warn("Unable to set password for test account force_user\n$cmd"); + return undef; + } print "DONE\n"; open(DNS_UPDATE_LIST, ">$prefix/dns_update_list") or die("Unable to open $$prefix/dns_update_list"); diff --git a/source3/script/tests/test_forceuser_validusers.sh b/source3/script/tests/test_forceuser_validusers.sh new file mode 100755 index 0000000..07aa1a5 --- /dev/null +++ b/source3/script/tests/test_forceuser_validusers.sh @@ -0,0 +1,59 @@ +#!/bin/sh +# +# Blackbox test for share with force user settings +# + +if [ $# -lt 6 ]; then +cat <<EOF +Usage: test_forceuser.sh SERVER DOMAIN USERNAME PASSWORD LOCAL_PATH SMBCLIENT <smbclient arguments> +EOF +exit 1; +fi + +SERVER="$1" +DOMAIN="$2" +USERNAME="force_user" +PASSWORD="$4" +LOCAL_PATH="$5" +SMBCLIENT="$6" +SMBCLIENT="$VALGRIND ${SMBCLIENT}" +shift 6 +ADDARGS="$*" +failed=0 + + +incdir=`dirname $0`/../../../testprogs/blackbox +. $incdir/subunit.sh + + +run_cmd_nooutput() { + CMD="$1" + + out=`eval ${CMD} &> TESTOUT` + if [ $? != 0 ] ; then + cat TESTOUT + rm -f TESTOUT + echo "command failed" + false + return + fi + + rm -f TESTOUT + true + return +} + +test_force_user_valid_users() +{ + SMB_SHARE="force_user_valid_users" + run_cmd_nooutput "${SMBCLIENT} //${SERVER}/${SMB_SHARE} -U$USERNAME%$PASSWORD -c 'ls'" +} + +# Test +testit "force user not works when combined with valid users" \ + test_force_user_valid_users || failed=`expr $failed + 1` + +# Cleanup + +# Results +testok $0 $failed diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index 42119cc..b2bae75 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -181,6 +181,7 @@ for env in ["fileserver"]: 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]) plantestsuite("samba3.blackbox.offline (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_offline.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/offline', smbclient3]) plantestsuite("samba3.blackbox.shadow_copy2 (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_shadow_copy.sh"), '$SERVER', '$SERVER_IP', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH/shadow', smbclient3]) + plantestsuite("samba3.blackbox.smbclient.forceuser_validusers (%s)" % env, env, [os.path.join(samba3srcdir, "script/tests/test_forceuser_validusers.sh"), '$SERVER', '$DOMAIN', '$USERNAME', '$PASSWORD', '$LOCAL_PATH', smbclient3]) # # tar command tests -- Samba Shared Repository