selftest: Add a test for LookupSids3 and LookupNames4 in python
[Samba.git] / nsswitch / tests / test_idmap_ad.sh
blob8c641bdcf6d96dbd26d4de931a3bee9b54d4115a
1 #!/bin/sh
3 # Basic testing of id mapping with idmap_ad
6 if [ $# -ne 6 ]; then
7 echo Usage: $0 DOMAIN DC_SERVER DC_PASSWORD TRUST_DOMAIN TRUST_SERVER TRUST_PASSWORD
8 exit 1
9 fi
11 DOMAIN="$1"
12 DC_SERVER="$2"
13 DC_PASSWORD="$3"
14 TRUST_DOMAIN="$4"
15 TRUST_SERVER="$5"
16 TRUST_PASSWORD="$6"
18 wbinfo="$VALGRIND $BINDIR/wbinfo"
19 ldbmodify="$VALGRIND $BINDIR/ldbmodify"
20 ldbsearch="$VALGRIND $BINDIR/ldbsearch"
22 failed=0
24 . `dirname $0`/../../testprogs/blackbox/subunit.sh
26 DOMAIN_SID=$($wbinfo -n "$DOMAIN/" | cut -f 1 -d " ")
27 if [ $? -ne 0 ] ; then
28 echo "Could not find domain SID" | subunit_fail_test "test_idmap_ad"
29 exit 1
32 TRUST_DOMAIN_SID=$($wbinfo -n "$TRUST_DOMAIN/" | cut -f 1 -d " ")
33 if [ $? -ne 0 ] ; then
34 echo "Could not find trusted domain SID" | subunit_fail_test "test_idmap_ad"
35 exit 1
38 BASE_DN=$($ldbsearch -H ldap://$DC_SERVER -b "" --scope=base defaultNamingContext | awk '/^defaultNamingContext/ {print $2}')
39 if [ $? -ne 0 ] ; then
40 echo "Could not find base DN" | subunit_fail_test "test_idmap_ad"
41 exit 1
44 TRUST_BASE_DN=$($ldbsearch -H ldap://$TRUST_SERVER -b "" --scope=base defaultNamingContext | awk '/^defaultNamingContext/ {print $2}')
45 if [ $? -ne 0 ] ; then
46 echo "Could not find trusted base DN" | subunit_fail_test "test_idmap_ad"
47 exit 1
51 # Add POSIX ids to AD
53 cat <<EOF | $ldbmodify -H ldap://$DC_SERVER -U "$DOMAIN\Administrator%$DC_PASSWORD"
54 dn: CN=Administrator,CN=Users,$BASE_DN
55 changetype: modify
56 add: uidNumber
57 uidNumber: 2000000
58 add: gidNumber
59 gidNumber: 2000100
60 add: unixHomeDirectory
61 unixHomeDirectory: /home/admin
62 add: loginShell
63 loginShell: /bin/tcsh
64 add: gecos
65 gecos: Administrator Full Name
66 EOF
68 cat <<EOF | $ldbmodify -H ldap://$DC_SERVER -U "$DOMAIN\Administrator%$DC_PASSWORD"
69 dn: CN=Domain Users,CN=Users,$BASE_DN
70 changetype: modify
71 add: gidNumber
72 gidNumber: 2000001
73 EOF
75 cat <<EOF | $ldbmodify -H ldap://$DC_SERVER -U "$DOMAIN\Administrator%$DC_PASSWORD"
76 dn: CN=Domain Admins,CN=Users,$BASE_DN
77 changetype: modify
78 add: gidNumber
79 gidNumber: 2000002
80 EOF
83 # Add POSIX ids to trusted domain
85 cat <<EOF | $ldbmodify -H ldap://$TRUST_SERVER \
86 -U "$TRUST_DOMAIN\Administrator%$TRUST_PASSWORD"
87 dn: CN=Administrator,CN=Users,$TRUST_BASE_DN
88 changetype: modify
89 add: uidNumber
90 uidNumber: 2500000
91 EOF
93 cat <<EOF | $ldbmodify -H ldap://$TRUST_SERVER \
94 -U "$TRUST_DOMAIN\Administrator%$TRUST_PASSWORD"
95 dn: CN=Domain Users,CN=Users,$TRUST_BASE_DN
96 changetype: modify
97 add: gidNumber
98 gidNumber: 2500001
99 EOF
101 cat <<EOF | $ldbmodify -H ldap://$TRUST_SERVER \
102 -U "$TRUST_DOMAIN\Administrator%$TRUST_PASSWORD"
103 dn: CN=Domain Admins,CN=Users,$TRUST_BASE_DN
104 changetype: modify
105 add: gidNumber
106 gidNumber: 2500002
110 # Test 1: Test uid of Administrator, should be 2000000
113 out="$($wbinfo -S $DOMAIN_SID-500)"
114 echo "wbinfo returned: \"$out\", expecting \"2000000\""
115 test "$out" = "2000000"
116 ret=$?
117 testit "Test uid of Administrator is 2000000" test $ret -eq 0 || failed=$(expr $failed + 1)
120 # Test 2: Test gid of Domain Users, should be 2000001
123 out="$($wbinfo -Y $DOMAIN_SID-513)"
124 echo "wbinfo returned: \"$out\", expecting \"2000001\""
125 test "$out" = "2000001"
126 ret=$?
127 testit "Test uid of Domain Users is 2000001" test $ret -eq 0 || failed=$(expr $failed + 1)
130 # Test 3: Test get userinfo for Administrator works
133 out="$($wbinfo -i $DOMAIN/Administrator)"
134 echo "wbinfo returned: \"$out\", expecting \"$DOMAIN/administrator:*:2000000:2000100:Administrator Full Name:/home/admin:/bin/tcsh\""
135 test "$out" = "$DOMAIN/administrator:*:2000000:2000100:Administrator Full Name:/home/admin:/bin/tcsh"
136 ret=$?
137 testit "Test get userinfo for Administrator works" test $ret -eq 0 || failed=$(expr $failed + 1)
140 # Test 4: Test lookup from gid to sid
143 out="$($wbinfo -G 2000002)"
144 echo "wbinfo returned: \"$out\", expecting \"$DOMAIN_SID-512\""
145 test "$out" = "$DOMAIN_SID-512"
146 ret=$?
147 testit "Test gid lookup of Domain Admins" test $ret -eq 0 || failed=$(expr $failed + 1)
150 # Trusted domain test 1: Test uid of Administrator, should be 2500000
153 out="$($wbinfo -S $TRUST_DOMAIN_SID-500)"
154 echo "wbinfo returned: \"$out\", expecting \"2500000\""
155 test "$out" = "2500000"
156 ret=$?
157 testit "Test uid of Administrator in trusted domain is 2500000" test $ret -eq 0 || failed=$(expr $failed + 1)
160 # Trusted domain test 2: Test gid of Domain Users, should be 2500001
163 out="$($wbinfo -Y $TRUST_DOMAIN_SID-513)"
164 echo "wbinfo returned: \"$out\", expecting \"2500001\""
165 test "$out" = "2500001"
166 ret=$?
167 testit "Test uid of Domain Users in trusted domain is 2500001" test $ret -eq 0 || failed=$(expr $failed + 1)
170 # Trusted domain test 3: Test get userinfo for Administrator works
173 out="$($wbinfo -i $TRUST_DOMAIN/Administrator)"
174 echo "wbinfo returned: \"$out\", expecting \"$TRUST_DOMAIN/administrator:*:2500000:2500001::/home/$TRUST_DOMAIN/administrator:/bin/false\""
175 test "$out" = "$TRUST_DOMAIN/administrator:*:2500000:2500001::/home/$TRUST_DOMAIN/administrator:/bin/false"
176 ret=$?
177 testit "Test get userinfo for Administrator works" test $ret -eq 0 || failed=$(expr $failed + 1)
180 # Trusted domain test 4: Test lookup from gid to sid
183 out="$($wbinfo -G 2500002)"
184 echo "wbinfo returned: \"$out\", expecting \"$TRUST_DOMAIN_SID-512\""
185 test "$out" = "$TRUST_DOMAIN_SID-512"
186 ret=$?
187 testit "Test gid lookup of Domain Admins in trusted domain." test $ret -eq 0 || failed=$(expr $failed + 1)
190 # Remove POSIX ids from AD
192 cat <<EOF | $ldbmodify -H ldap://$DC_SERVER -U "$DOMAIN\Administrator%$DC_PASSWORD"
193 dn: CN=Administrator,CN=Users,$BASE_DN
194 changetype: modify
195 delete: uidNumber
196 uidNumber: 2000000
197 delete: gidNumber
198 gidNumber: 2000100
199 delete: unixHomeDirectory
200 unixHomeDirectory: /home/admin
201 delete: loginShell
202 loginShell: /bin/tcsh
203 delete: gecos
204 gecos: Administrator Full Name
207 cat <<EOF | $ldbmodify -H ldap://$DC_SERVER -U "$DOMAIN\Administrator%$DC_PASSWORD"
208 dn: CN=Domain Users,CN=Users,$BASE_DN
209 changetype: modify
210 delete: gidNumber
211 gidNumber: 2000001
214 cat <<EOF | $ldbmodify -H ldap://$DC_SERVER -U "$DOMAIN\Administrator%$DC_PASSWORD"
215 dn: CN=Domain Admins,CN=Users,$BASE_DN
216 changetype: modify
217 delete: gidNumber
218 gidNumber: 2000002
222 # Remove POSIX ids from trusted domain
224 cat <<EOF | $ldbmodify -H ldap://$TRUST_SERVER \
225 -U "$TRUST_DOMAIN\Administrator%$TRUST_PASSWORD"
226 dn: CN=Administrator,CN=Users,$TRUST_BASE_DN
227 changetype: modify
228 delete: uidNumber
229 uidNumber: 2500000
232 cat <<EOF | $ldbmodify -H ldap://$TRUST_SERVER \
233 -U "$TRUST_DOMAIN\Administrator%$TRUST_PASSWORD"
234 dn: CN=Domain Users,CN=Users,$TRUST_BASE_DN
235 changetype: modify
236 delete: gidNumber
237 gidNumber: 2500001
240 cat <<EOF | $ldbmodify -H ldap://$TRUST_SERVER \
241 -U "$TRUST_DOMAIN\Administrator%$TRUST_PASSWORD"
242 dn: CN=Domain Admins,CN=Users,$TRUST_BASE_DN
243 changetype: modify
244 delete: gidNumber
245 gidNumber: 2500002
248 exit $failed