[SCM] Samba Shared Repository - branch master updated

Uri Simchoni uri at samba.org
Thu Feb 4 02:45:03 UTC 2016


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 <rhack at 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 <rhack at redhat.com>
    Reviewed-by: Uri Simchoni <uri at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>
    
    Autobuild-User(master): Uri Simchoni <uri at 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



More information about the samba-cvs mailing list