diff --git a/testprogs/blackbox/test_samba-tool_ntacl.sh b/testprogs/blackbox/test_samba-tool_ntacl.sh index 769b2cebd69..1571b1a72c5 100755 --- a/testprogs/blackbox/test_samba-tool_ntacl.sh +++ b/testprogs/blackbox/test_samba-tool_ntacl.sh @@ -7,6 +7,9 @@ if [ $# -ne 3 ]; then exit 1 fi +set -u +set -e + PREFIX=$1 domain_sid=$2 CONFIGURATION=$3 @@ -16,7 +19,11 @@ failed=0 samba4bindir="$BINDIR" samba_tool="$samba4bindir/samba-tool" -testfile="$PREFIX/ntacl_testfile" +testdirtop="$PREFIX/ntacl_testdirtop" +testfile="$testdirtop/testfile" +testdir1="$testdirtop/dir1" +testdir1f="$testdirtop/dir1/file" +testdir1l="$testdirtop/dir1/symlink" # acl from samba_tool/ntacl.py tests acl="O:DAG:DUD:P(A;OICI;FA;;;DA)(A;OICI;FA;;;EA)(A;OICIIO;FA;;;CO)(A;OICI;FA;;;DA)(A;OICI;FA;;;SY)(A;OICI;0x001200a9;;;AU)(A;OICI;0x001200a9;;;ED)S:AI(OU;CIIDSA;WP;f30e3bbe-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)(OU;CIIDSA;WP;f30e3bbf-9ff0-11d1-b603-0000f80367c1;bf967aa5-0de6-11d0-a285-00aa003049e2;WD)" @@ -43,8 +50,9 @@ test_set_acl() { testfile="$1" acl="$2" + shift 2 - $PYTHON $samba_tool ntacl set "$acl" "$testfile" + $PYTHON $samba_tool ntacl set "$acl" "$testfile" "$@" } test_get_acl_ntvfs() @@ -108,7 +116,11 @@ test_changedomsid_ntvfs() touch "$(dirname $SMB_CONF_PATH)/error_inject.conf" touch "$(dirname $SMB_CONF_PATH)/delay_inject.conf" +mkdir "$testdirtop" touch "$testfile" +mkdir "$testdir1" +touch "$testdir1f" +ln -s "$testfile" "$testdir1l" testit "set_ntacl" test_set_acl "$testfile" "$acl" || failed=$(expr $failed + 1) @@ -127,6 +139,126 @@ testit "get_ntacl_ntvfs" test_get_acl_ntvfs "$testfile" "$acl_without_padding" | testit "changedomsid_ntvfs" test_changedomsid_ntvfs "$testfile" || failed=$(expr $failed + 1) -rm -f "$testfile" +testit_grep "set_ntacl_recursive1 testdirtop" \ + "ignored symlink: $testdirtop" \ + test_set_acl "$testdirtop" "$acl" --recursive || failed=$(expr $failed + 1) +testit "get_ntacl_after_set_recursive1 testdirtop" \ + test_get_acl "$testdirtop" "$acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) +testit "get_ntacl_after_set_recursive1 testfile" \ + test_get_acl "$testfile" "$acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) +testit "get_ntacl_after_set_recursive1 testdir1" \ + test_get_acl "$testdir1" "$acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) +testit "get_ntacl_after_set_recursive1 testdir1f" \ + test_get_acl "$testdir1f" "$acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) + +testit_grep "changedomsid_recursive1 testdir1" \ + "ignored symlink: $testdir1l" \ + test_changedomsid "$testdir1" --recursive || failed=$(expr $failed + 1) +testit "get_ntacl_after_changedomsid_recursive1 testdirtop" \ + test_get_acl "$testdirtop" "$acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) +testit "get_ntacl_after_changedomsid_recursive1 testfile" \ + test_get_acl "$testfile" "$acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) +testit "get_ntacl_after_changedomsid_recursive1 testdir1" \ + test_get_acl "$testdir1" "$new_acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) +testit "get_ntacl_after_changedomsid_recursive1 testdir1f" \ + test_get_acl "$testdir1f" "$new_acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) + +testit_grep "changedomsid_recursive2 testdirtop" \ + "ignored symlink: $testdir1l" \ + test_changedomsid "$testdirtop" --recursive || failed=$(expr $failed + 1) +testit "get_ntacl_after_changedomsid_recursive2 testdirtop" \ + test_get_acl "$testdirtop" "$new_acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) +testit "get_ntacl_after_changedomsid_recursive2 testfile" \ + test_get_acl "$testfile" "$new_acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) +testit "get_ntacl_after_changedomsid_recursive2 testdir1" \ + test_get_acl "$testdir1" "$new_acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) +testit "get_ntacl_after_changedomsid_recursive2 testdir1f" \ + test_get_acl "$testdir1f" "$new_acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) + +testit_grep "set_ntacl_recursive2 testdir1" \ + "ignored symlink: $testdir1l" \ + test_set_acl "$testdir1" "$acl" --recursive || failed=$(expr $failed + 1) +testit "get_ntacl_after_set_recursive2 testdirtop" \ + test_get_acl "$testdirtop" "$new_acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) +testit "get_ntacl_after_set_recursive2 testfile" \ + test_get_acl "$testfile" "$new_acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) +testit "get_ntacl_after_set_recursive2 testdir1" \ + test_get_acl "$testdir1" "$acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) +testit "get_ntacl_after_set_recursive2 testdir1f" \ + test_get_acl "$testdir1f" "$acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) + +testit_grep "set_ntacl_recursive3 testdir1" \ + "symlink: $testdir1l" \ + test_set_acl "$testdir1" "$acl" --recursive --follow-symlinks --verbose || failed=$(expr $failed + 1) +testit "get_ntacl_after_set_recursive3 testdirtop" \ + test_get_acl "$testdirtop" "$new_acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) +testit "get_ntacl_after_set_recursive3 testfile" \ + test_get_acl "$testfile" "$acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) +testit "get_ntacl_after_set_recursive3 testdir1" \ + test_get_acl "$testdir1" "$acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) +testit "get_ntacl_after_set_recursive3 testdir1f" \ + test_get_acl "$testdir1f" "$acl_without_padding" \ + --service=tmp \ + $CONFIGURATION \ + || failed=$(expr $failed + 1) + +rm -rf "$testdirtop" exit $failed