diff options
author | Ralph Boehme <slow@samba.org> | 2021-01-25 11:48:32 +0100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2021-02-01 07:50:10 +0000 |
commit | ba12f0c3ae02d002435ecbb32ac018f8eb821691 (patch) | |
tree | d05803b3400541c56abececa46144f944733d30c | |
parent | 35eddb388f248cb206518eb2843f9aaf1479bfeb (diff) | |
download | samba-ba12f0c3ae02d002435ecbb32ac018f8eb821691.tar.gz |
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 <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
(cherry picked from commit aa1f09cda0a097617e34dd0a8b1b0acc7a37bca8)
-rw-r--r-- | selftest/knownfail.d/samba3.blackbox.force-user-unlink | 1 | ||||
-rwxr-xr-x | source3/script/tests/test_force_user_unlink.sh | 40 | ||||
-rwxr-xr-x | source3/selftest/tests.py | 5 |
3 files changed, 46 insertions, 0 deletions
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 edd86e2a1fc..bbd249c3ccb 100755 --- a/source3/selftest/tests.py +++ b/source3/selftest/tests.py @@ -1125,6 +1125,11 @@ plantestsuite( "", "-b $PREFIX/clusteredmember_smb1/unclists/tmp.txt -N 5 -o 10"]) +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''' |