s3: torture: Call the smbtorture3 SMB2-SACL test.
authorJeremy Allison <jra@samba.org>
Sat, 18 Apr 2020 00:39:22 +0000 (17:39 -0700)
committerJeremy Allison <jra@samba.org>
Tue, 21 Apr 2020 18:37:39 +0000 (18:37 +0000)
Calls the test in the previous commit by adding
SeSecurityPrivilege first, running the SMB2-SACL test
then removing SeSecurityPrivilege.

Demonstrates the difference between server behavior
with SEC_FLAG_SYSTEM_SECURITY against SMB1 and SMB2 servers.

Mark as knownfail for now.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
selftest/knownfail.d/sacl_set_get [new file with mode: 0644]
source3/script/tests/test_sacl_set_get.sh [new file with mode: 0755]
source3/selftest/tests.py

diff --git a/selftest/knownfail.d/sacl_set_get b/selftest/knownfail.d/sacl_set_get
new file mode 100644 (file)
index 0000000..6aee383
--- /dev/null
@@ -0,0 +1,2 @@
+^samba3.blackbox.sacl_get_set.SACL set_get\(fileserver\)
+
diff --git a/source3/script/tests/test_sacl_set_get.sh b/source3/script/tests/test_sacl_set_get.sh
new file mode 100755 (executable)
index 0000000..68a9057
--- /dev/null
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+# Runs the smbtorture3 SMB2-SACL test
+# that requres SeSecurityPrivilege
+# against Samba.
+#
+
+if [ $# -lt 7 ]; then
+    echo "Usage: $0 SERVER SERVER_IP USERNAME PASSWORD SMBTORTURE3 NET SHARE"
+    exit 1
+fi
+
+SERVER="$1"
+SERVER_IP="$2"
+USERNAME="$3"
+PASSWORD="$4"
+SMBTORTURE3="$5"
+NET="$6"
+SHARE="$7"
+
+failed=0
+
+incdir=`dirname $0`/../../../testprogs/blackbox
+. $incdir/subunit.sh
+
+sacl_set_get() {
+    out=$($SMBTORTURE3 //$SERVER_IP/$SHARE -U $USERNAME%$PASSWORD SMB2-SACL)
+    if [ $? -ne 0 ] ; then
+       echo "SMB2-SACL failed"
+       echo "$out"
+       return 1
+    fi
+}
+
+# Grant SeSecurityPrivilege to the user
+testit "grant SeSecurityPrivilege" $NET rpc rights grant $USERNAME SeSecurityPrivilege -U $USERNAME%$PASSWORD -I $SERVER_IP || failed=`expr $failed + 1`
+
+# Run the tests.
+testit "SACL set_get" sacl_set_get || failed=`expr $failed + 1`
+
+# Revoke SeSecurityPrivilege
+testit "revoke SeSecurityPrivilege" $NET rpc rights revoke $USERNAME SeSecurityPrivilege -U $USERNAME%$PASSWORD -I $SERVER_IP || failed=`expr $failed + 1`
+
+exit $failed
index e693f50dc30e7fb9c2eea9e8c6415cec18e56091..a536a473cb5495bca6f21fe66bc368a09134248b 100755 (executable)
@@ -415,6 +415,9 @@ for env in ["fileserver"]:
     plantestsuite("samba3.blackbox.smb1_system_security", env + "_smb1_done",
                   [os.path.join(samba3srcdir, "script/tests/test_smb1_system_security.sh"),
                    '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbtorture3, net, 'tmp'])
+    plantestsuite("samba3.blackbox.sacl_get_set", env,
+                  [os.path.join(samba3srcdir, "script/tests/test_sacl_set_get.sh"),
+                   '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', smbtorture3, net, 'tmp'])
 
     #
     # tar command tests