From: Ralph Boehme Date: Mon, 25 Jan 2021 10:48:32 +0000 (+0100) Subject: selftest: add a test that verifies unlink works when "force user" is set X-Git-Tag: tevent-0.11.0~1979 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aa1f09cda0a097617e34dd0a8b1b0acc7a37bca8;p=thirdparty%2Fsamba.git selftest: add a test that verifies unlink works when "force user" is set BUG: https://bugzilla.samba.org/show_bug.cgi?id=14617 Signed-off-by: Ralph Boehme Reviewed-by: Jeremy Allison --- diff --git a/selftest/knownfail.d/samba3.blackbox.force-user-unlink b/selftest/knownfail.d/samba3.blackbox.force-user-unlink new file mode 100644 index 00000000000..6761bd8cb61 --- /dev/null +++ b/selftest/knownfail.d/samba3.blackbox.force-user-unlink @@ -0,0 +1 @@ +^samba3.blackbox.force-user-unlink.test_forced_user_can_delete\(maptoguest:local\) diff --git a/source3/script/tests/test_force_user_unlink.sh b/source3/script/tests/test_force_user_unlink.sh new file mode 100755 index 00000000000..86076535497 --- /dev/null +++ b/source3/script/tests/test_force_user_unlink.sh @@ -0,0 +1,40 @@ +#!/bin/sh +# +# Test unlink on share with "force user" +# +# Copyright (C) 2021 Ralph Boehme + +incdir=$(dirname $0)/../../../testprogs/blackbox +. $incdir/subunit.sh +. $incdir/common_test_fns.inc + +smbclient="$BINDIR/smbclient" +error_inject_conf=$(dirname ${SMB_CONF_PATH})/error_inject.conf +failed=0 + +test_forced_user_can_delete() { + out=$($smbclient -U $DOMAIN/$USERNAME%$PASSWORD //$SERVER_IP/force_user_error_inject -c "rm dir/file") + if [ $? -ne 0 ] ; then + echo $out + return 1 + fi + tmp=$(echo $out | grep NT_STATUS_ ) + if [ $? -eq 0 ] ; then + return 1 + fi + return 0 +} + +echo "error_inject:unlinkat = EACCES" > ${error_inject_conf} + +$smbclient -U $DOMAIN/$USERNAME%$PASSWORD //$SERVER_IP/force_user_error_inject -c "mkdir dir" || failed=`expr $failed + 1` +$smbclient -U $DOMAIN/$USERNAME%$PASSWORD //$SERVER_IP/force_user_error_inject -c "put WHATSNEW.txt dir/file" || failed=`expr $failed + 1` + +testit "test_forced_user_can_delete" test_forced_user_can_delete || failed=`expr $failed + 1` + +rm ${error_inject_conf} + +# Clean up after ourselves. +$smbclient -U $DOMAIN/$USERNAME%$PASSWORD //$SERVER_IP/force_user_error_inject -c "del dir/file; rmdir dir" + +testok $0 $failed diff --git a/source3/selftest/tests.py b/source3/selftest/tests.py index 0250eb11684..6f65bf5ef9d 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -1189,6 +1189,11 @@ plantestsuite( "bin/samba-tool", '$DNSNAME']) +plantestsuite("samba3.blackbox.force-user-unlink", + "maptoguest:local", + [os.path.join(samba3srcdir, + "script/tests/test_force_user_unlink.sh")]) + def planclusteredmembertestsuite(tname, prefix): '''Define a clustered test for the clusteredmember environment'''