Home | History | Annotate | Line # | Download | only in scripts
      1 #! /bin/sh
      2 # $OpenLDAP$
      3 ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
      4 ##
      5 ## Copyright 1998-2024 The OpenLDAP Foundation.
      6 ## All rights reserved.
      7 ##
      8 ## Redistribution and use in source and binary forms, with or without
      9 ## modification, are permitted only as authorized by the OpenLDAP
     10 ## Public License.
     11 ##
     12 ## A copy of this license is available in the file LICENSE in the
     13 ## top-level directory of the distribution or, alternatively, at
     14 ## <http://www.OpenLDAP.org/license.html>.
     15 
     16 case "$BACKEND" in ldif | null)
     17 	echo "$BACKEND backend does not support access controls, test skipped"
     18 	exit 0
     19 esac
     20 
     21 echo "running defines.sh"
     22 . $SRCDIR/scripts/defines.sh
     23 
     24 mkdir -p $TESTDIR $DBDIR1
     25 
     26 echo "Running slapadd to build slapd database..."
     27 . $CONFFILTER $BACKEND < $ACLCONF > $CONF1
     28 $SLAPADD -f $CONF1 -l $LDIFORDERED
     29 RC=$?
     30 if test $RC != 0 ; then
     31 	echo "slapadd failed ($RC)!"
     32 	exit $RC
     33 fi
     34 
     35 echo "Starting slapd on TCP/IP port $PORT1..."
     36 $SLAPD -f $CONF1 -h $URI1 -d $LVL > $LOG1 2>&1 &
     37 PID=$!
     38 if test $WAIT != 0 ; then
     39     echo PID $PID
     40     read foo
     41 fi
     42 KILLPIDS="$PID"
     43 
     44 sleep 1
     45 
     46 echo "Testing slapd access control..."
     47 for i in 0 1 2 3 4 5; do
     48 	$LDAPSEARCH -s base -b "$MONITOR" -H $URI1 \
     49 		'objectclass=*' > /dev/null 2>&1
     50 	RC=$?
     51 	if test $RC = 0 ; then
     52 		break
     53 	fi
     54 	echo "Waiting 5 seconds for slapd to start..."
     55 	sleep 5
     56 done
     57 
     58 if test $RC != 0 ; then
     59 	echo "ldapsearch failed ($RC)!"
     60 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
     61 	exit $RC
     62 fi
     63 
     64 cat /dev/null > $SEARCHOUT
     65 
     66 echo "# Try to read an entry inside the Alumni Association container.
     67 # It should give us noSuchObject if we're not bound..." \
     68 >> $SEARCHOUT
     69 # FIXME: temporarily remove the "No such object" message to make
     70 # the test succeed even if SLAP_ACL_HONOR_DISCLOSE is not #define'd
     71 $LDAPSEARCH -b "$JAJDN" -H $URI1 "(objectclass=*)" \
     72 	2>&1 | grep -v "No such object" >> $SEARCHOUT
     73 
     74 echo "# ... and should return all attributes if we're bound as anyone
     75 # under Example." \
     76 >> $SEARCHOUT
     77 $LDAPSEARCH -b "$JAJDN" -H $URI1 \
     78 	-D "$BABSDN" -w bjensen "(objectclass=*)" >> $SEARCHOUT 2>&1
     79 
     80 # ITS#4253, ITS#4255
     81 echo "# Checking exact/regex attrval clause" >> $SEARCHOUT
     82 $LDAPSEARCH -H $URI1 \
     83 	-D "$BABSDN" -w bjensen \
     84 	-b "$MELLIOTDN" -s base "(objectclass=*)" cn >> $SEARCHOUT 2>&1
     85 $LDAPSEARCH -H $URI1 \
     86 	-D "$BJORNSDN" -w bjorn \
     87 	-b "$MELLIOTDN" -s base "(objectclass=*)" cn >> $SEARCHOUT 2>&1
     88 
     89 $LDAPSEARCH -H $URI1 \
     90 	-D "$BABSDN" -w bjensen \
     91 	-b "$JOHNDDN" -s base "(objectclass=*)" cn >> $SEARCHOUT 2>&1
     92 $LDAPSEARCH -H $URI1 \
     93 	-D "$BJORNSDN" -w bjorn \
     94 	-b "$JOHNDDN" -s base "(objectclass=*)" cn >> $SEARCHOUT 2>&1
     95 
     96 $LDAPSEARCH -H $URI1 \
     97 	-D "$BABSDN" -w bjensen \
     98 	-b "$BJORNSDN" -s base "(objectclass=*)" cn >> $SEARCHOUT 2>&1
     99 $LDAPSEARCH -H $URI1 \
    100 	-D "$BJORNSDN" -w bjorn \
    101 	-b "$BABSDN" -s base "(objectclass=*)" cn >> $SEARCHOUT 2>&1
    102 
    103 # check selfwrite access (ITS#4587).  6 attempts are made:
    104 # 1) delete someone else (should fail)
    105 # 2) delete self (should succeed)
    106 # 3) add someone else (should fail)
    107 # 4) add someone else and self (should fail)
    108 # 5) add self and someone else (should fail)
    109 # 6) add self (should succeed)
    110 #
    111 $LDAPMODIFY -D "$JAJDN" -H $URI1 -w jaj >> \
    112 	$TESTOUT 2>&1 << EOMODS
    113 dn: cn=All Staff,ou=Groups,dc=example,dc=com
    114 changetype: modify
    115 delete: member
    116 member: $BABSDN
    117 EOMODS
    118 RC=$?
    119 case $RC in
    120 50)
    121 	;;
    122 0)
    123 	echo "ldapmodify should have failed ($RC)!"
    124 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    125 	exit 1
    126 	;;
    127 *)
    128 	echo "ldapmodify failed ($RC)!"
    129 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    130 	exit $RC
    131 	;;
    132 esac
    133 
    134 $LDAPMODIFY -D "$JAJDN" -H $URI1 -w jaj >> \
    135 	$TESTOUT 2>&1 << EOMODS
    136 dn: cn=All Staff,ou=Groups,dc=example,dc=com
    137 changetype: modify
    138 delete: member
    139 member: $JAJDN
    140 EOMODS
    141 RC=$?
    142 if test $RC != 0 ; then
    143 	echo "ldapmodify failed ($RC)!"
    144 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    145 	exit $RC
    146 fi
    147 
    148 $LDAPMODIFY -D "$JAJDN" -H $URI1 -w jaj >> \
    149 	$TESTOUT 2>&1 << EOMODS
    150 dn: cn=All Staff,ou=Groups,dc=example,dc=com
    151 changetype: modify
    152 add: member
    153 member: cn=Foo,ou=Bar
    154 EOMODS
    155 RC=$?
    156 case $RC in
    157 50)
    158 	;;
    159 0)
    160 	echo "ldapmodify should have failed ($RC)!"
    161 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    162 	exit 1
    163 	;;
    164 *)
    165 	echo "ldapmodify failed ($RC)!"
    166 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    167 	exit $RC
    168 	;;
    169 esac
    170 
    171 $LDAPMODIFY -D "$JAJDN" -H $URI1 -w jaj >> \
    172 	$TESTOUT 2>&1 << EOMODS
    173 dn: cn=All Staff,ou=Groups,dc=example,dc=com
    174 changetype: modify
    175 add: member
    176 member: cn=Foo,ou=Bar
    177 member: $JAJDN
    178 EOMODS
    179 RC=$?
    180 case $RC in
    181 50)
    182 	;;
    183 0)
    184 	echo "ldapmodify should have failed ($RC)!"
    185 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    186 	exit 1
    187 	;;
    188 *)
    189 	echo "ldapmodify failed ($RC)!"
    190 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    191 	exit $RC
    192 	;;
    193 esac
    194 
    195 $LDAPMODIFY -D "$JAJDN" -H $URI1 -w jaj >> \
    196 	$TESTOUT 2>&1 << EOMODS
    197 dn: cn=All Staff,ou=Groups,dc=example,dc=com
    198 changetype: modify
    199 add: member
    200 member: $JAJDN
    201 member: cn=Foo,ou=Bar
    202 EOMODS
    203 RC=$?
    204 case $RC in
    205 50)
    206 	;;
    207 0)
    208 	echo "ldapmodify should have failed ($RC)!"
    209 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    210 	exit 1
    211 	;;
    212 *)
    213 	echo "ldapmodify failed ($RC)!"
    214 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    215 	exit $RC
    216 	;;
    217 esac
    218 
    219 $LDAPMODIFY -D "$JAJDN" -H $URI1 -w jaj >> \
    220 	$TESTOUT 2>&1 << EOMODS
    221 dn: cn=All Staff,ou=Groups,dc=example,dc=com
    222 changetype: modify
    223 add: member
    224 member: $JAJDN
    225 EOMODS
    226 RC=$?
    227 if test $RC != 0 ; then
    228 	echo "ldapmodify failed ($RC)!"
    229 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    230 	exit $RC
    231 fi
    232 
    233 #
    234 # Check group access. Try to modify Babs' entry. Two attempts:
    235 # 1) bound as "James A Jones 1" - should fail
    236 # 2) bound as "Bjorn Jensen" - should succeed
    237 
    238 $LDAPMODIFY -D "$JAJDN" -H $URI1 -w jaj >> \
    239 	$TESTOUT 2>&1 << EOMODS5
    240 dn: $BABSDN
    241 changetype: modify
    242 replace: drink
    243 drink: wine
    244 EOMODS5
    245 RC=$?
    246 case $RC in
    247 50)
    248 	;;
    249 0)
    250 	echo "ldapmodify should have failed ($RC)!"
    251 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    252 	exit 1
    253 	;;
    254 *)
    255 	echo "ldapmodify failed ($RC)!"
    256 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    257 	exit $RC
    258 	;;
    259 esac
    260 
    261 $LDAPMODIFY -D "$BJORNSDN" -H $URI1 -w bjorn >> \
    262 	$TESTOUT 2>&1 << EOMODS6
    263 dn: $BABSDN
    264 changetype: modify
    265 add: homephone
    266 homephone: +1 313 555 5444
    267 EOMODS6
    268 RC=$?
    269 case $RC in
    270 0)
    271 	;;
    272 *)
    273 	echo "ldapmodify failed ($RC)!"
    274 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    275 	exit $RC
    276 	;;
    277 esac
    278 
    279 #
    280 # Try to add a "member" attribute to the "ITD Staff" group.  It should
    281 # fail when we add some DN other than our own, and should succeed when
    282 # we add our own DN.
    283 # bjensen
    284 $LDAPMODIFY -D "$JAJDN" -H $URI1 -w jaj >> \
    285 	$TESTOUT 2>&1 << EOMODS1
    286 version: 1
    287 dn: cn=ITD Staff, ou=Groups, dc=example, dc=com
    288 changetype: modify
    289 add: uniquemember
    290 uniquemember: cn=Barbara Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com
    291 EOMODS1
    292 RC=$?
    293 case $RC in
    294 50)
    295 	;;
    296 0)
    297 	echo "ldapmodify should have failed ($RC)!"
    298 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    299 	exit 1
    300 	;;
    301 *)
    302 	echo "ldapmodify failed ($RC)!"
    303 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    304 	exit $RC
    305 	;;
    306 esac
    307 
    308 $LDAPMODIFY -D "$JAJDN" -H $URI1 -w jaj >> \
    309 	$TESTOUT 2>&1 << EOMODS2
    310 version: 1
    311 
    312 dn: cn=ITD Staff, ou=Groups, dc=example, dc=com
    313 changetype: modify
    314 add: uniquemember
    315 uniquemember: cn=James A Jones 1, ou=Alumni Association, ou=People, dc=example, dc=com
    316 EOMODS2
    317 RC=$?
    318 case $RC in
    319 0)
    320 	;;
    321 *)
    322 	echo "ldapmodify failed ($RC)!"
    323 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    324 	exit $RC
    325 	;;
    326 esac
    327 
    328 #
    329 # Try to modify the "ITD Staff" group.  Two attempts are made:
    330 # 1) bound as "James A Jones 1" - should fail
    331 # 2) bound as "Bjorn Jensen" - should succeed
    332 #
    333 $LDAPMODIFY -D "$JAJDN" -H $URI1 -w jaj >> \
    334 	$TESTOUT 2>&1 << EOMODS3
    335 
    336 dn: cn=ITD Staff, ou=Groups, dc=example, dc=com
    337 changetype: modify
    338 delete: description
    339 EOMODS3
    340 RC=$?
    341 case $RC in
    342 50)
    343 	;;
    344 0)
    345 	echo "ldapmodify should have failed ($RC)!"
    346 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    347 	exit 1
    348 	;;
    349 *)
    350 	echo "ldapmodify failed ($RC)!"
    351 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    352 	exit $RC
    353 	;;
    354 esac
    355 
    356 $LDAPMODIFY -D "$BJORNSDN" -H $URI1 -w bjorn >> \
    357 	$TESTOUT 2>&1 << EOMODS4
    358 # COMMENT
    359 version: 1
    360 # comment
    361 dn: cn=ITD Staff, ou=Groups, dc=example, dc=com
    362 # comment
    363 changetype: modify
    364 # comment
    365 add: ou
    366 # comment
    367 ou: Groups
    368 # comment
    369 EOMODS4
    370 RC=$?
    371 case $RC in
    372 0)
    373 	;;
    374 *)
    375 	echo "ldapmodify failed ($RC)!"
    376 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    377 	exit $RC
    378 	;;
    379 esac
    380 
    381 #
    382 # Try to modify the "ITD Staff" group.  Two attempts are made:
    383 # 1) bound as "James A Jones 1" - should succeed
    384 # 2) bound as "Barbara Jensen" - should fail
    385 # should exploit sets
    386 #
    387 $LDAPMODIFY -D "$JAJDN" -H $URI1 -w jaj >> \
    388 	$TESTOUT 2>&1 << EOMODS5
    389 dn: cn=Alumni Assoc Staff, ou=Groups, dc=example, dc=com
    390 changetype: modify
    391 add: description
    392 description: added by jaj (should succeed)
    393 -
    394 EOMODS5
    395 RC=$?
    396 case $RC in
    397 0)
    398 	;;
    399 *)
    400 	echo "ldapmodify failed ($RC)!"
    401 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    402 	exit $RC
    403 	;;
    404 esac
    405 
    406 $LDAPMODIFY -D "$BABSDN" -H $URI1 -w bjensen >> \
    407 	$TESTOUT 2>&1 << EOMODS6
    408 dn: cn=Alumni Assoc Staff, ou=Groups, dc=example, dc=com
    409 changetype: modify
    410 add: description
    411 description: added by bjensen (should fail)
    412 -
    413 EOMODS6
    414 RC=$?
    415 case $RC in
    416 50)
    417 	;;
    418 0)
    419 	echo "ldapmodify should have failed ($RC)!"
    420 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    421 	exit 1
    422 	;;
    423 *)
    424 	echo "ldapmodify failed ($RC)!"
    425 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    426 	exit $RC
    427 	;;
    428 esac
    429 
    430 $LDAPMODIFY -D "$MANAGERDN" -H $URI1 -w $PASSWD >> \
    431 	$TESTOUT 2>&1 << EOMODS7
    432 dn: ou=Add & Delete,dc=example,dc=com
    433 changetype: add
    434 objectClass: organizationalUnit
    435 ou: Add & Delete
    436 EOMODS7
    437 RC=$?
    438 if test $RC != 0 ; then
    439 	echo "ldapmodify failed ($RC)!"
    440 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    441 	exit $RC
    442 fi
    443 
    444 $LDAPMODIFY -D "$BABSDN" -H $URI1 -w bjensen >> \
    445 	$TESTOUT 2>&1 << EOMODS8
    446 dn: cn=Added by Babs (must fail),ou=Add & Delete,dc=example,dc=com
    447 changetype: add
    448 objectClass: inetOrgPerson
    449 cn: Added by Babs (must fail)
    450 sn: None
    451 EOMODS8
    452 RC=$?
    453 case $RC in
    454 50)
    455 	;;
    456 0)
    457 	echo "ldapmodify should have failed ($RC)!"
    458 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    459 	exit 1
    460 	;;
    461 *)
    462 	echo "ldapmodify failed ($RC)!"
    463 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    464 	exit $RC
    465 	;;
    466 esac
    467 
    468 $LDAPMODIFY -D "$BJORNSDN" -H $URI1 -w bjorn >> \
    469 	$TESTOUT 2>&1 << EOMODS9
    470 dn: cn=Added by Bjorn (must succeed),ou=Add & Delete,dc=example,dc=com
    471 changetype: add
    472 objectClass: inetOrgPerson
    473 cn: Added by Bjorn (must succeed)
    474 sn: None
    475 
    476 dn: cn=Added by Bjorn (will be deleted),ou=Add & Delete,dc=example,dc=com
    477 changetype: add
    478 objectClass: inetOrgPerson
    479 cn: Added by Bjorn (will be deleted)
    480 sn: None
    481 
    482 dn: cn=Added by Bjorn (will be renamed),ou=Add & Delete,dc=example,dc=com
    483 changetype: add
    484 objectClass: inetOrgPerson
    485 cn: Added by Bjorn (will be renamed)
    486 sn: None
    487 
    488 dn: cn=Added by Bjorn (must succeed),ou=Add & Delete,dc=example,dc=com
    489 changetype: modify
    490 add: description
    491 description: this attribute value has been added __after__entry creation
    492 description: this attribute value will be deleted by Babs (must succeed)
    493 description: Bjorn will try to delete this attribute value (should fail)
    494 -
    495 EOMODS9
    496 RC=$?
    497 case $RC in
    498 0)
    499 	;;
    500 *)
    501 	echo "ldapmodify failed ($RC)!"
    502 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    503 	exit $RC
    504 	;;
    505 esac
    506 
    507 $LDAPMODIFY -D "$BJORNSDN" -H $URI1 -w bjorn >> \
    508 	$TESTOUT 2>&1 << EOMODS10
    509 dn: cn=Added by Bjorn (will be deleted),ou=Add & Delete,dc=example,dc=com
    510 changetype: delete
    511 EOMODS10
    512 RC=$?
    513 case $RC in
    514 50)
    515 	;;
    516 0)
    517 	echo "ldapmodify should have failed ($RC)!"
    518 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    519 	exit 1
    520 	;;
    521 *)
    522 	echo "ldapmodify failed ($RC)!"
    523 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    524 	exit $RC
    525 	;;
    526 esac
    527 
    528 $LDAPMODIFY -D "$BJORNSDN" -H $URI1 -w bjorn >> \
    529 	$TESTOUT 2>&1 << EOMODS11
    530 dn: cn=Added by Bjorn (will be renamed),ou=Add & Delete,dc=example,dc=com
    531 changetype: modrdn
    532 newrdn: cn=Added by Bjorn (renamed by Bjorn)
    533 deleteoldrdn: 1
    534 EOMODS11
    535 RC=$?
    536 case $RC in
    537 50)
    538 	;;
    539 0)
    540 	echo "ldapmodify should have failed ($RC)!"
    541 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    542 	exit 1
    543 	;;
    544 *)
    545 	echo "ldapmodify failed ($RC)!"
    546 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    547 	exit $RC
    548 	;;
    549 esac
    550 
    551 $LDAPMODIFY -D "$BABSDN" -H $URI1 -w bjensen >> \
    552 	$TESTOUT 2>&1 << EOMODS12
    553 dn: cn=Added by Bjorn (will be renamed),ou=Add & Delete,dc=example,dc=com
    554 changetype: modrdn
    555 newrdn: cn=Added by Bjorn (renamed by Babs)
    556 deleteoldrdn: 1
    557 EOMODS12
    558 RC=$?
    559 case $RC in
    560 50)
    561 	;;
    562 0)
    563 	echo "ldapmodify should have failed ($RC)!"
    564 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    565 	exit 1
    566 	;;
    567 *)
    568 	echo "ldapmodify failed ($RC)!"
    569 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    570 	exit $RC
    571 	;;
    572 esac
    573 
    574 $LDAPMODIFY -D "$JAJDN" -H $URI1 -w jaj >> \
    575 	$TESTOUT 2>&1 << EOMODS13
    576 dn: cn=Added by Bjorn (will be renamed),ou=Add & Delete,dc=example,dc=com
    577 changetype: modrdn
    578 newrdn: cn=Added by Bjorn (renamed by Jaj)
    579 deleteoldrdn: 1
    580 EOMODS13
    581 RC=$?
    582 case $RC in
    583 0)
    584 	;;
    585 *)
    586 	echo "ldapmodify failed ($RC)!"
    587 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    588 	exit $RC
    589 	;;
    590 esac
    591 
    592 $LDAPMODIFY -D "$BJORNSDN" -H $URI1 -w bjorn >> \
    593 	$TESTOUT 2>&1 << EOMODS14
    594 dn: cn=Added by Bjorn (must succeed),ou=Add & Delete,dc=example,dc=com
    595 changetype: modify
    596 delete: description
    597 description: Bjorn will try to delete this attribute value (should fail)
    598 -
    599 EOMODS14
    600 RC=$?
    601 case $RC in
    602 50)
    603 	;;
    604 0)
    605 	echo "ldapmodify should have failed ($RC)!"
    606 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    607 	exit 1
    608 	;;
    609 *)
    610 	echo "ldapmodify failed ($RC)!"
    611 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    612 	exit $RC
    613 	;;
    614 esac
    615 
    616 $LDAPMODIFY -D "$BABSDN" -H $URI1 -w bjensen >> \
    617 	$TESTOUT 2>&1 << EOMODS15
    618 dn: cn=Added by Bjorn (will be deleted),ou=Add & Delete,dc=example,dc=com
    619 changetype: delete
    620 
    621 dn: cn=Added by Bjorn (must succeed),ou=Add & Delete,dc=example,dc=com
    622 changetype: modify
    623 delete: description
    624 description: this attribute value will be deleted by Babs (must succeed)
    625 -
    626 EOMODS15
    627 RC=$?
    628 case $RC in
    629 0)
    630 	;;
    631 *)
    632 	echo "ldapmodify failed ($RC)!"
    633 	test $KILLSERVERS != no && kill -HUP $KILLPIDS
    634 	exit $RC
    635 	;;
    636 esac
    637 
    638 echo "Using ldapsearch to retrieve all the entries..."
    639 echo "# Using ldapsearch to retrieve all the entries..." >> $SEARCHOUT
    640 $LDAPSEARCH -S "" -b "$BASEDN" -H $URI1 \
    641 	    'objectClass=*' >> $SEARCHOUT 2>&1
    642 RC=$?
    643 test $KILLSERVERS != no && kill -HUP $KILLPIDS
    644 if test $RC != 0 ; then
    645 	echo "ldapsearch failed ($RC)!"
    646 	exit $RC
    647 fi
    648 
    649 LDIF=$ACLOUTPROVIDER
    650 
    651 echo "Filtering ldapsearch results..."
    652 $LDIFFILTER < $SEARCHOUT > $SEARCHFLT
    653 echo "Filtering original ldif used to create database..."
    654 $LDIFFILTER < $LDIF > $LDIFFLT
    655 echo "Comparing filter output..."
    656 $CMP $SEARCHFLT $LDIFFLT > $CMPOUT
    657 
    658 if test $? != 0 ; then
    659 	echo "comparison failed - operations did not complete correctly"
    660 	exit 1
    661 fi
    662 
    663 echo ">>>>> Test succeeded"
    664 
    665 test $KILLSERVERS != no && wait
    666 
    667 exit 0
    668