2 # Blackbox tests for samba-tool ntacl get/set on member server
3 # Copyright (C) 2018 Björn Baumbach <bb@sernet.de>
7 Usage: test_net_ads_dns.sh PREFIX
17 samba4bindir="$BINDIR"
18 samba_tool="$samba4bindir/samba-tool"
20 testfile="$PREFIX/ntacl_testfile"
22 # acl from samba_tool/ntacl.py tests
23 acl="O:DAG:DUD:P(A;OICI;0x001f01ff;;;DA)(A;OICI;0x001f01ff;;;EA)(A;OICIIO;0x001f01ff;;;CO)(A;OICI;0x001f01ff;;;DA)(A;OICI;0x001f01ff;;;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)"
24 new_acl="O:S-1-5-21-2212615479-2695158682-2101375468-512G:S-1-5-21-2212615479-2695158682-2101375468-513D:P(A;OICI;0x001f01ff;;;S-1-5-21-2212615479-2695158682-2101375468-512)(A;OICI;0x001f01ff;;;S-1-5-21-2212615479-2695158682-2101375468-519)(A;OICIIO;0x001f01ff;;;CO)(A;OICI;0x001f01ff;;;S-1-5-21-2212615479-2695158682-2101375468-512)(A;OICI;0x001f01ff;;;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)"
25 new_domain_sid="S-1-5-21-2212615479-2695158682-2101375468"
27 . `dirname $0`/subunit.sh
30 export UID_WRAPPER_ROOT
37 retacl=$($PYTHON $samba_tool ntacl get "$testfile" --as-sddl) || return $?
39 test "$retacl" = "$exptextedacl"
47 $PYTHON $samba_tool ntacl set "$acl" "$testfile"
55 retacl=$($PYTHON $samba_tool ntacl get "$testfile" --as-sddl --use-ntvfs --xattr-backend=tdb -s $PREFIX/ad_member/lib/server.conf) || return $?
57 test "$retacl" = "$exptextedacl"
65 $PYTHON $samba_tool ntacl set "$acl" "$testfile" --use-ntvfs --xattr-backend=tdb -s $PREFIX/ad_member/lib/server.conf
72 $PYTHON $samba_tool ntacl changedomsid \
73 "$domain_sid" "$new_domain_sid" "$testfile" \
75 -s $PREFIX/ad_member/lib/server.conf
77 retacl=$($PYTHON $samba_tool ntacl get \
81 -s $PREFIX/ad_member/lib/server.conf) || return $?
83 test "$retacl" = "$new_acl"
86 test_changedomsid_ntvfs()
90 $PYTHON $samba_tool ntacl changedomsid \
91 "$domain_sid" "$new_domain_sid" "$testfile" \
94 -s $PREFIX/ad_member/lib/server.conf
96 retacl=$($PYTHON $samba_tool ntacl get \
101 -s $PREFIX/ad_member/lib/server.conf) || return $?
103 test "$retacl" = "$new_acl"
106 # work around include error - s4-loadparm does not allow missing include files
108 # Unable to load file /home/bbaumba/src/git/samba/st/ad_member/lib/server.conf
109 # File "bin/python/samba/netcmd/__init__.py", line 183, in _run
110 # return self.run(*args, **kwargs)
111 # File "bin/python/samba/netcmd/ntacl.py", line 175, in run
112 # lp = sambaopts.get_loadparm()
113 # File "bin/python/samba/getopt.py", line 92, in get_loadparm
114 # self._lp.load(os.getenv("SMB_CONF_PATH"))
115 # Processing section "[global]"
116 touch "$(dirname $SMB_CONF_PATH)/error_inject.conf"
117 touch "$(dirname $SMB_CONF_PATH)/delay_inject.conf"
121 testit "set_ntacl" test_set_acl "$testfile" "$acl" || failed=`expr $failed + 1`
123 testit "get_ntacl" test_get_acl "$testfile" "$acl" || failed=`expr $failed + 1`
125 testit "changedomsid" test_changedomsid "$testfile" || failed=`expr $failed + 1`
127 testit "set_ntacl_ntvfs" test_set_acl_ntvfs "$testfile" "$acl" || failed=`expr $failed + 1`
128 testit "get_ntacl_ntvfs" test_get_acl_ntvfs "$testfile" "$acl" || failed=`expr $failed + 1`
130 testit "changedomsid_ntvfs" test_changedomsid_ntvfs "$testfile" || failed=`expr $failed + 1`