test: Show that netfileenum is broken
authorVolker Lendecke <vl@samba.org>
Mon, 11 May 2020 09:08:54 +0000 (11:08 +0200)
committerStefan Metzmacher <metze@samba.org>
Thu, 14 May 2020 20:29:38 +0000 (20:29 +0000)
Bug: https://bugzilla.samba.org/show_bug.cgi?id=14355

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
selftest/knownfail.d/netfileenum [new file with mode: 0644]
source3/script/tests/test_netfileenum.sh [new file with mode: 0755]
source3/selftest/tests.py

diff --git a/selftest/knownfail.d/netfileenum b/selftest/knownfail.d/netfileenum
new file mode 100644 (file)
index 0000000..2d3b6fa
--- /dev/null
@@ -0,0 +1 @@
+^samba3.blackbox.netfileenum.netfileenum\(simpleserver:local\)
diff --git a/source3/script/tests/test_netfileenum.sh b/source3/script/tests/test_netfileenum.sh
new file mode 100755 (executable)
index 0000000..e917ad4
--- /dev/null
@@ -0,0 +1,73 @@
+#!/bin/bash
+#
+# Test rpcclient netfileenum
+#
+# Copyright (C) 2020 Volker Lendecke
+
+if [ $# -lt 5 ]; then
+    echo Usage: $0 \
+        SMBCLIENT RPCCLIENT NET SERVER SHARE
+exit 1
+fi
+
+SMBCLIENT="$1"; shift 1
+RPCCLIENT="$1"; shift 1
+NET="$1"; shift 1
+SERVER="$1"; shift 1
+SHARE="$1"; shift 1
+
+incdir=$(dirname $0)/../../../testprogs/blackbox
+. $incdir/subunit.sh
+
+failed=0
+
+rm -f smbclient-stdin smbclient-stdout smbclient-stderr
+mkfifo smbclient-stdin smbclient-stdout smbclient-stderr
+
+CLI_FORCE_INTERACTIVE=1; export CLI_FORCE_INTERACTIVE
+
+${SMBCLIENT} //${SERVER}/${SHARE} ${CONF} -U${USER}%${PASSWORD} \
+            < smbclient-stdin > smbclient-stdout 2>smbclient-stderr &
+CLIENT_PID=$!
+
+sleep 1
+
+exec 100>smbclient-stdin 101<smbclient-stdout 102<smbclient-stderr
+
+# consume the smbclient startup messages
+head -n 1 <&101
+head -n 1 <&102
+
+FILE=x64
+
+printf "open %s\\n" "$FILE" >&100
+
+sleep 1
+
+testit "Create builtin\\administrators group" \
+       "${NET}" groupmap add \
+       sid=S-1-5-32-544 unixgroup="${USER}"-group type=builtin || \
+    failed=$((failed+1))
+testit "Add ${USER} to builtin\\administrators" \
+       "${NET}" groupmap addmem S-1-5-32-544 \
+       $("${NET}" lookup name "${USER}" | cut -d' ' -f1) || \
+    failed=$((failed+1))
+
+"${RPCCLIENT}" "${SERVER}" -U"${USER}"%"${PASSWORD}" -c netfileenum |
+    grep "$FILE"\$
+RC=$?
+testit "netfileenum" test $RC = 0 || failed=$((failed+1))
+
+kill ${CLIENT_PID}
+rm -f smbclient-stdin smbclient-stdout smbclient-stderr
+
+testit "Remove ${USER} from builtin\\administrators" \
+       "${NET}" groupmap delmem S-1-5-32-544 \
+       $("${NET}" lookup name "${USER}" | cut -d' ' -f1) || \
+    failed=$((failed+1))
+testit "Remove builtin\\administrators group" \
+       "${NET}" groupmap delete \
+       sid=S-1-5-32-544 || \
+    failed=$((failed+1))
+
+testok $0 $failed
index 7309c05a7a521f0b3d4646b5b93471f2ccf5db88..38ed8c771c257eb3d1b68f3d4d842b569b769540 100755 (executable)
@@ -923,6 +923,15 @@ plantestsuite("samba3.blackbox.open-eintr", "simpleserver:local",
                '$SERVER_IP',
                "error_inject"])
 
+plantestsuite("samba3.blackbox.netfileenum", "simpleserver:local",
+              [os.path.join(samba3srcdir,
+                            "script/tests/test_netfileenum.sh"),
+               os.path.join(bindir(), "smbclient"),
+               os.path.join(bindir(), "rpcclient"),
+               os.path.join(bindir(), "net"),
+               '$SERVER_IP',
+               'tmp'])
+
 plantestsuite("samba3.blackbox.net_tdb", "simpleserver:local",
               [os.path.join(samba3srcdir, "script/tests/test_net_tdb.sh"),
                smbclient3, '$SERVER', 'tmp', '$USERNAME', '$PASSWORD',