selftest: show that Samba honours "write list" and valid users
authorAndrew Bartlett <abartlet@samba.org>
Thu, 20 Dec 2012 12:05:55 +0000 (23:05 +1100)
committerKarolin Seeger <kseeger@samba.org>
Mon, 14 Jan 2013 19:44:39 +0000 (20:44 +0100)
Reviewed-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
The last 19 patches address bug #9518 - conn->share_access appears not be be
reset between users.

Autobuild-User(v4-0-test): Karolin Seeger <kseeger@samba.org>
Autobuild-Date(v4-0-test): Mon Jan 14 20:44:40 CET 2013 on sn-devel-104

selftest/target/Samba3.pm
source3/script/tests/test_smbclient_machine_auth.sh
source3/script/tests/test_smbclient_s3.sh
source3/selftest/tests.py

index 2037a2e697f36fc9cd1e3fba9a5dcd42fd6fd280..6c634135f54a43595f245081f05d6d9af67b390d 100755 (executable)
@@ -956,6 +956,13 @@ sub provision($$$$$$)
 [ro-tmp]
        path = $ro_shrdir
        guest ok = yes
+[write-list-tmp]
+       path = $shrdir
+        read only = yes
+       write list = $unix_name
+[valid-users-tmp]
+       path = $shrdir
+       valid users = $unix_name
 [msdfs-share]
        path = $msdfs_shrdir
        msdfs root = yes
index f67256d19bc10e8ccb54e3ec876f459a0431fb10..a890d48314956096c65cf7f4c84c387264826235 100755 (executable)
@@ -19,3 +19,7 @@ incdir=`dirname $0`/../../../testprogs/blackbox
 . $incdir/subunit.sh
 
 testit "smbclient //$SERVER/tmp" $SMBCLIENT //$SERVER/tmp --machine-pass -I $SERVER_IP -p 139 -c quit $ADDARGS
+
+# Testing these here helps because we know the machine account isn't already this user/group
+testit "smbclient //$SERVER/forceuser" $SMBCLIENT //$SERVER/tmp --machine-pass -I $SERVER_IP -p 139 -c quit $ADDARGS
+testit "smbclient //$SERVER/forcegroup" $SMBCLIENT //$SERVER/tmp --machine-pass -I $SERVER_IP -p 139 -c quit $ADDARGS
index 3341c62f4b98eac4d1b72f861f8dfd4cd9b108b3..aa2ba77542ba2a640a763bb23ba14fdf2f5a16b9 100755 (executable)
@@ -211,7 +211,7 @@ mkdir a_test_dir
 quit
 EOF
 
-    cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT "$@" -U% //$SERVER/ro-tmp -I $SERVER_IP $ADDARGS < $tmpfile 2>&1'
+    cmd='CLI_FORCE_INTERACTIVE=yes $SMBCLIENT -U% //$SERVER/$1" -I $SERVER_IP $ADDARGS < $tmpfile 2>&1'
     eval echo "$cmd"
     out=`eval $cmd`
     ret=$?
@@ -529,7 +529,11 @@ testit "creating a good symlink and deleting it by path" \
    failed=`expr $failed + 1`
 
 testit "writing into a read-only directory fails" \
-   test_read_only_dir || \
+   test_read_only_dir ro-tmp || \
+   failed=`expr $failed + 1`
+
+testit "writing into a read-only share fails" \
+   test_read_only_dir valid-users-tmp || \
    failed=`expr $failed + 1`
 
 testit "Reading a owner-only file fails" \
index 9b0527cee69a018de4667ffeadb246be14bdf425..57c80f236642174409b3d22840b699a65c6f8403 100755 (executable)
@@ -330,6 +330,11 @@ for t in tests:
     elif t == "smb2.durable-open" or t == "smb2.durable-v2-open":
         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER_IP/durable -U$USERNAME%$PASSWORD')
+    elif t == "base.rw1":
+        plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
+        plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/valid-users-tmp -U$USERNAME%$PASSWORD')
+        plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/write-list-tmp -U$USERNAME%$PASSWORD')
+        plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')
     else:
         plansmbtorture4testsuite(t, "s3dc", '//$SERVER_IP/tmp -U$USERNAME%$PASSWORD')
         plansmbtorture4testsuite(t, "plugin_s4_dc", '//$SERVER/tmp -U$USERNAME%$PASSWORD')