2 # test groupmap code tridge@samba.org September 2006
3 # note that this needs root access to add unix groups,
4 # so this cannot be run on the build farm
9 $VALGRIND bin
/net groupmap $
*
20 echo "Took $(expr $TNOW - $TBASE) seconds"
24 rm -f $PREFIX_ABS/var
/locks
/group_mapping.?db
29 DOMSID
=$
(bin
/net getlocalsid |
awk '{print $6}')
36 echo "Creating unix groups"
37 for i
in $
(seq 1 1 $NLOCAL); do
39 gid
=$
(expr 30000 + $i)
40 groupdel
$unixgroup 2>/dev
/null
41 groupadd
-g $gid $unixgroup ||
exit 1
43 for i
in $
(seq 1 1 $NGROUP); do
45 gid
=$
(expr 40000 + $i)
46 groupdel
$unixgroup 2>/dev
/null
47 groupadd
-g $gid $unixgroup ||
exit 1
49 for i
in $
(seq 1 1 $NBUILTIN); do
51 gid
=$
(expr 50000 + $i)
52 groupdel
$unixgroup 2>/dev
/null
53 groupadd
-g $gid $unixgroup ||
exit 1
59 echo "Creating local groups"
60 for i
in $
(seq 1 1 $NLOCAL); do
63 rid
=$
(expr 10000 + $i)
64 testone add rid
=$rid unixgroup
=$unixgroup ntgroup
=$ntgroup type=local ||
exit 1
67 echo "trying a duplicate add"
68 testone add rid
=10001 unixgroup
=testlocal1 ntgroup
=foo
type=local && exit 1
72 echo "Creating domain groups"
73 for i
in $
(seq 1 1 $NGROUP); do
76 rid
=$
(expr 20000 + $i)
77 testone add rid
=$rid unixgroup
=$unixgroup ntgroup
=$ntgroup type=domain ||
exit 1
82 echo "Creating builtin groups"
83 for i
in $
(seq 1 1 $NBUILTIN); do
86 rid
=$
(expr 30000 + $i)
87 testone add rid
=$rid unixgroup
=$unixgroup ntgroup
=$ntgroup type=builtin ||
exit 1
92 echo "Adding domain groups to local groups"
93 for i
in $
(seq 1 1 $NLOCAL); do
94 for j
in $
(seq 1 1 $i); do
96 lrid
=$
(expr 10000 + $i)
97 drid
=$
(expr 20000 + $j)
99 testone addmem
$DOMSID-$lrid $DOMSID-$drid ||
exit 1
100 (testone listmem
$DOMSID-$lrid |
sort -r) ||
exit 1
104 echo "trying a duplicate addmem"
105 testone addmem
$DOMSID-10001 $DOMSID-20001 && exit 1
107 echo "Adding foreign SIDs to local groups"
108 for i
in $
(seq 1 1 $NLOCAL); do
109 for j
in $
(seq 1 1 $i); do
111 lrid
=$
(expr 10000 + $i)
112 frid
=$
(expr 70000 + $j)
114 testone addmem
$DOMSID-$lrid $FORSID-$frid ||
exit 1
115 (testone listmem
$DOMSID-$lrid |
sort -r) ||
exit 1
119 echo "trying a duplicate foreign addmem"
120 testone addmem
$DOMSID-10001 $FORSID-70001 && exit 1
124 echo "Listing local group memberships of domain groups"
125 for i
in $
(seq 1 1 $NGROUP); do
126 rid
=$
(expr 20000 + $i)
127 (testone memberships
$DOMSID-$rid |
sort -r) ||
exit 1
130 echo "Trying memberships on bogus sid"
131 testone memberships
$DOMSID-999999 ||
exit 1
137 echo "Deleting some domain groups"
138 for i
in $
(seq 2 2 $NGROUP); do
139 drid
=$
(expr 20000 + $i)
140 testone delete sid
=$DOMSID-$drid ||
exit 1
143 echo "Trying duplicate domain group delete"
144 testone delete sid
=$DOMSID-20002 && exit 1
148 echo "Deleting some local groups"
149 for i
in $
(seq 2 4 $NLOCAL); do
150 lrid
=$
(expr 10000 + $i)
151 testone delete sid
=$DOMSID-$lrid ||
exit 1
154 echo "Trying duplicate local group delete"
155 testone delete sid
=$DOMSID-10002 && exit 1
159 echo "Modifying some domain groups"
160 for i
in $
(seq 3 2 $NGROUP); do
161 drid
=$
(expr 20000 + $i)
162 testone modify sid
=$DOMSID-$drid comment
="newcomment-$i" type=domain ||
exit 1
169 echo "Listing local group memberships"
170 for i
in $
(seq 1 1 $NLOCAL); do
171 rid
=$
(expr 20000 + $i)
172 (testone memberships
$DOMSID-$rid |
sort -r) ||
exit 1
177 echo "Removing some domain groups from local groups"
178 for i
in $
(seq 1 2 $NLOCAL); do
179 for j
in $
(seq 1 3 $i); do
181 lrid
=$
(expr 10000 + $i)
182 drid
=$
(expr 20000 + $j)
184 testone delmem
$DOMSID-$lrid $DOMSID-$drid ||
exit 1
188 echo "Trying duplicate delmem"
189 testone delmem
$DOMSID-10001 $DOMSID-20001 && exit 1
193 echo "Listing local group memberships"
194 for i
in $
(seq 1 1 $NLOCAL); do
195 rid
=$
(expr 20000 + $i)
196 (testone memberships
$DOMSID-$rid |
sort -r) ||
exit 1
201 echo "Deleting unix groups"
202 for i
in $
(seq 1 1 $NLOCAL); do
203 unixgroup
=testlocal
$i
204 groupdel
$unixgroup 2>/dev
/null
206 for i
in $
(seq 1 1 $NGROUP); do
208 groupdel
$unixgroup 2>/dev
/null
210 for i
in $
(seq 1 1 $NBUILTIN); do
212 groupdel
$unixgroup 2>/dev
/null