ou can find entries in your directory using any LDAP client. Most clients provide some form of a search interface that allows you to easily search the directory and retrieve entry information. Note, however, that you cannot search the directory unless the appropriate access control has been set in your directory. For information on setting access control in your directory, see Chapter 5, "Managing Access Control."
ldapsearch command-line utility
The following topics are covered in this section:
For information on how to use the Users and Groups area of the administration server, see the online help that is available through your administration server. For information on how to use the directory server gateway, see the online help that is available through the gateway.ldapsearch command-line utility. When you are using ldapsearch, you can place multiple search filters in a file, with each filter on a separate line in the file, or you can specify a search filter directly on the command-line call to ldapsearch.
For example, the following filter specifies a search for a common name equal to Babs Jensen:
cn=babs jensenThis search filter returns all entries that contain a common name equal to Babs Jensen. Note that any language tags associated with the common name attribute are also returned. Thus, the following two attributes both match this filter:
cn: babs jensen cn;lang-fr: babs jensenFor a list of all the supported language tags, see Table D.1.
Search Filter Syntax
The basic syntax of a search filter is:
<attribute><operator><value>For example:
employeenumber>=100In this example,
employeenumber is the attribute, >= is the operator, and 100 is the value. You can also define filters that use different attributes combined together using boolean operators.
The following sections describe search filters in detail.
cn attribute to search for people with a specific common name.
Examples of attributes for entries about people might include:
cn (the person's common name)
sn (the person's surname, or last name, or family name)
telephonenumber (the person's telephone number)
employeenumber (the person's employeenumber)
l (the location where you can find the person)
Using Operators in Search Filters
A search filter operator can be one of the following:
Note
In addition to these search filters, you can specify special filters to work with a
preferred language collation order. For information on how to search a
directory with international character sets, see "Searching an Internationalized
Directory".
Using Multiple Search Filters
Multiple search operations can be combined using Boolean operators expressed in prefix notation as follows:
(<operator>(<search operation>)(<search operation>)(<search operation>)...))where <operator> is any one of the Boolean operators. In addition, multiple search operation Boolean operators can be nested together to form complex expressions, such as:
(<operator>(<search operation>)((<operator>(<search operation>)(<search operation>)))
Boolean expressions are evaluated in the following order:
manager=*The following filter searches for entries containing the common name of Ray Kultgen. This is also known as an equality search:
cn=Ray KultgenThe following filter returns any entries that do not contain the common name of Ray Kultgen:
(!(cn=Ray Kultgen))The following filter returns any entries that contain a description attribute with a substring of X.500:
description=*X.500*The following filter returns any entries whose organizational unit is Marketing and whose description field does not contain the substring X.500:
(&(ou=Marketing)(!(description=*X.500*)))The following filter returns any entries whose organizational unit is Marketing and that have Julie Fulmer or Cindy Zwaska as a manager:
(&(ou=Marketing)(|(manager=cn=Julie Fulmer,ou=Marketing,o=airius.com)(manager=cn=Cindy Zwaska,ou=Marketing,o=arius.com)))The following filter returns any entries that do not represent a person:
(!(objectClass=person))The following filter returns any entries that do not represent a person and whose common name is similar to printer3b:
(&(!(objectClass=person))(cn~=printer3b))
ldapsearch command-line utility to locate and retrieve directory entries. This utility opens a connection to the specified server using the specified distinguished name and password, and locates entries based on a specified search filter. Search scopes can include a single entry, an entry's immediate subentries, or an entire tree or subtree.
Search results are returned in LDIF format. For information on where you can find the command line utilities in your directory server installation, see "Finding the Command-Line Utilities".
Using Special Characters
When using the ldapsearch command-line utility, you may need to specify values that contain characters that have special meaning to the command-line interpreter (such as space [ ], asterisk [*], backslash [\], and so forth). When this situation occurs, enclose the value in quotation marks (""). For example:
-D "cn=Barbara Jensen, ou=Product Development, o=airius.com"
-D "cn=Patricia Fuentes, ou=people, o=Airius Bolivia\, S.A."
ldapsearch, you must enter the command using the following format:
ldapsearch [<optional parameters>] [<optional search filter>] [<optional list of attributes>]where:
-D uid=bjensen, o=airius.com.
-w diner89&2.
-h
cyclops.
-p
1049. The default is 389. If -Z is used, the default is 636.
LDAP_BASEDN environment variable has been set to a base DN.
-b "cn=Barbara Jensen, ou=Product Development, o=airius.com".
-b ""
base--Search only the entry specified in the -b option.
one--Search only the most immediate children of the entry specified in the -b parameter. Note that only the children are searched; the actual entry specified in the -b parameter is not searched.
sub--Search the entry specified in the -b parameter and all of its descendants. That is, perform a subtree search starting at the point identified in the -b parameter. This is the default.
ldapsearch will never wait
longer than is allowed by the server's Time Limit parameter. For example, -l
300.
ldapsearch never returns
more entries than is allowed by the server's Size Limit in Entries parameter. For
example, -z 1000.
ldapsearch is to use LDAPS when communicating with your directory server. These parameters are valid only when LDAPS has been turned on and configured for your directory server. For more information on LDAPS, see "Managing SSL".
Make sure that you specify your directory server's encrypted port when you use these parameters:
-Z
Specifies that SSL is to be used for the search request.
-P
Specifies the path and filename of the security files for the client. This
parameter is used only with the -Z parameter. When used on a machine where
a SSL-enabled web browser is configured, the path specified on this option can
be pointed to the security database for the web browser. For example,
-P
c:\security\cert.db. Note that the client security files can also be stored
on the directory server in the <NSHOME>/alias directory. In this case, the -P
parameter would call out a path and filename similar to the following: -P
c:\Netscape\Suitespot\alias\client-cert.db.
-N
Specifies the certificate name to use the certificate-based client authentication.
For example,
-N Server-Cert. If this option is specified, then the -Z, -K, and
-W parameters are required. Also, if this option is specified, then the -D and -w
parameters must not be specified, or certificate-based authentication will not
occur and the bind operation will use the authentication credentials specified
on -D and -w.
-K
Specifies the name of the certificate key file used for certificate-based client
authentication. For example,
-K Server-Key.
-W
Specifies the password for the certificate key file identified in the -P parameter.
For example,
-W serverpassword.
-Q
Specifies the number of the slot into which you plugged your FORTEZZA
crypto card and, optionally, the name of the FORTEZZA certificate you want to
use. The slot number and certificate name are separated by a colon. For
example, if you plugged your crypto card into slot 2 and want to use the certificate named doe, you would specify the following:
-Q 2:doe.
-I
Specifies the personal identification number (PIN) associated with the
FORTEZZA crypto card and certificate you specified in the -Q parameter.
-X
Specifies the path and filename of the compromised key list (CKL).
Additional ldapsearch Parameters
To further customize a search, use the following optional parameters:
-f
Specifies the file containing the search filter(s) to be used in the search. For
example, -f search_filters. Search filters are described in "LDAP Search
Filters". Omit this parameter if you want to supply a search filter directly to the
command line.
-A
Specifies that the search retrieve the attributes only, not the attribute values.
This parameter is useful if you just want to determine if an attribute is present
for an entry and you are not interested in the value.
-a
Specifies how alias dereferencing is completed. Value can be "never," "always,"
"search," or "find." Default value is "never."
-m
Manage smart referrals. Causes the server to not return the smart referral
contained on the entry, but to instead return the actual entry containing the
referral. Use this parameter if you are attempting to search for entries that
contain smart referrals. For more information about smart referrals, see
"Creating and Changing Smart Referrals".
-n
Specifies that the search is not to be actually performed, but that ldapsearch is to show
what it would do with the specified input.
-R
Specifies that referrals are not to be followed automatically.
-O
Specifies the maximum number of referral hops
ldapsearch should automatically follow. For example, -O 2.
-S
Specifies the attribute to use as the sort criteria. For example,
-S sn. The
default is not to sort the returned entries. If the attribute is the zero-length string
(() the entries will be sorted by distinguished name.
-t
Specifies that the results be written to a set of temporary files.
-u
Specifies that the user-friendly form of the distinguished name be used in the
output.
-v
Specifies that the utility is to run in verbose mode.
-V
Specifies the LDAP version number to be used on the search. For example,
-V
2. LDAP v3 is the default. Note that you cannot perform an LDAP v3 search
against a directory server that only supports LDAP v2.
-B
Legacy option. Not currently supported.
-F
Legacy option. Not currently supported.
-L
Legacy option. Not currently supported.
-o
Legacy option. Not currently supported.
ldapsearch Examples
Suppose:
cyclops.
"filter"). Also, do not specify the -f parameter. For example:
ldapsearch -h cyclops -b "o=airius.com" "cn=babs jensen"
base. For example:
ldapsearch -h cyclops -b "" -s base "objectclass=*"
ldapsearch -h cyclops -b "cn=schema" -s base "objectclass=*"
LDAP_BASEDN environment variable. Doing this allows you to skip specifying the search base with the LDAP_BASEDN to your directory's suffix value. Since your directory suffix is equal to the root, or topmost, entry in your directory, this causes all searches to begin from your directory's root entry.
For example, suppose you have set LDAP_BASEDN to o=airius.com. Then to search for cn=babs jensen in your directory use the following command-line call:
ldapsearch -h cyclops "cn=babs jensen"
common name and surname attributes for every entry in the directory, use the following command-line call:
ldapsearch -h cyclops "objectclass=*" sn cnNote that this example assumes you set your search base with
LDAP_BASEDN.
ldapsearch will run each search in order until the last search filter is found in the file. That is, if you enter
sn=Francisinto the file, then
givenname=Richard
ldapsearch will first find all the entries who's surname is Francis, and then all the entries whose givenname is Richard. Note that if an entry is found that matches both search criteria, then that entry is returned twice.
For example, suppose you specified the previous search filters in a file named searchdb, and you set your search base using LDAP_BASEDN. Then the following returns all the entries that match both search filters:
ldapsearch -h cyclops -f searchdbYou can limit the set of attributes returned here by appending the attribute names that you want to see at the end of the search line. For example, the following performs both searches, but only returns the entry's DN and each entry's
givenname and surname attributes:
ldapsearch -h cyclops -f searchdb sn givenname
ldapsearch -h cyclops -s base -b "o=Airius Bolivia\, S.A." "objectclass=*"
Note
The
This section focuses on the matching rule filter portion of the ldapsearch command-line utility is currently the only method for
performing international searches. You cannot perform international searches
using the Users and Groups area of the administration server, the Directory
Server Gateway, or using the Netscape Communicator address book. Also,
when performing internationalized searches, you must perform an LDAP v3
search; do not therefore specify the -v2 parameter on the call to ldapsearch.
ldapsearch syntax. For more information on general ldapsearch syntax, see "LDAP Search Filters".
Supported Search Types
The directory server supports the following types of international searches:
ldapsearch search operation, an international search uses operators to define the type of search. However, when invoking an international search, you can either use the standard operators (=, >=, >, <, <=) in the value portion of the search string, or you can use a special type of operator, called a suffix (not to be confused with the directory suffix), in the matching rule portion of the filter to define the search type. The following table summarizes each type of search, the operator, and the equivalent suffix.
| Search Type | Operator | Suffix |
|---|---|---|
| Less than |
<
|
.1
|
| Less than or equal to |
<=
|
.2
|
| Equality |
=
|
.3
|
| Greater than or equal to |
>=
|
.4
|
| Greater than |
>
|
.5
|
| Substring |
*
|
.6
|
Matching Rule Filter Syntax
A matching rule provides special guidelines for how strings are to be compared in a search operation. In an international search, the matching rule tells the system what collation order and operator to use when performing the search operation. For example, a matching rule in an international search might tell the server to search for attribute values that come at or after llama in the Spanish collation order. The syntax of the matching rule filter is as follows:
<attr>:<matchingRule>:=<value>
where
<attr>:<OID>:=(<relational operator><space><value>)
Notice that in this case, the relational operator is included in the value portion of the string, separated from the value by a single space. For example, to search for all departmentNumber attributes that are at or after N4709 in the Swedish collation order, use the following filter:
departmentNumber:2.16.840.1.113730.3.3.2.46.1:=>= N4709
<attr>:<language-tag>:=(<relational operator><space><value>)
Notice that in this case, the relational operator is included in the value portion of the string, separated from the value by a single space. For example, to search the directory for all description attributes with a value of estudiante using the Spanish collation order, use the following filter:
cn:es:== estudiante
<attr>:<OID>+<suffix>:=<value>
For example, to search for businessCategory attributes with the value softwareproduckte in the German collation order, use the following filter:
businessCategory:2.16.840.1.113730.3.3.2.7.1.3:=softwareproduckte
Using a Language Tag and Suffix for the matchingRule
As an alternative to using a relational operator + value pair, you can append a suffix that represents a specific operator to the language tag in the matchingRule portion of the filter. For a list of locales supported by the directory server and their associated language tags, see Table D.1. For a list of relational operators and their equivalent suffixes, see Table 8.1. You combine the language tag and suffix as follows:
<attr>:<language-tag>+<suffix>:=<value>
For example, to search for all surnames that come at or after La Salle in the French collation order, use the following filter:
sn:fr.4:=La Salle
Using Wildcards in Matching Rule Filters
When performing a substring search using a matching rule filter, you can use the asterisk (*) character as a wildcard to represent zero or more characters. For example, to search for an attribute that starts with the letter "l" and ends with the letter "n," you would enter a "l*n" in the value portion of the search filter. Similarly, to search for all attribute values beginning with the letter "u," you would enter a value of "u*" in the value portion of the search filter.
To search for a value that contains the asterisk (*) character, you must escape the * with the designated escape sequence, \5c2a. For example, to search for all employees with businessCategory attribute values of Airius*Net product line, enter the following value in the search filter:
Airius\5c2a*Net product line
International Search Examples
The following sections show examples of how to perform international searches on directory server data. Each example shows all the possible matching rule filter formats so that you can become familiar with the formats and select the one that works the best for you.
Less Than Example
When you perform locale-specific search using the less than operator (<) or suffix (.1), you are searching for all attribute values that come before the given attribute in a specific collation order. For example, to search for all surnames that come before the surname Marquez in the Spanish collation order, you could use any of the following matching rule filters:
sn:2.16.840.1.113730.3.3.2.15.1:=< Marquez
sn:es:=< Marquez
sn:2.16.840.1.113730.3.3.2.15.1.1:=Marquez
sn:es.1:=Marquez
roomNumber:2.16.840.1.113730.3.3.2.23.1:=<= CZ422
roomNumber:hu:=<= CZ422
roomNumber:2.16.840.1.113730.3.3.2.23.1.2:=CZ422
roomNumber:hu.2:=CZ422
businessCategory attributes with the value softwareproduckte in the German collation order, you could use any of the following matching rule filters:
businessCategory:2.16.840.1.113730.3.3.2.7.1:== softwareproduckte
businessCategory:de:== softwareproduckte
businessCategory:2.16.840.1.113730.3.3.2.7.1.3:=softwareproduckte
businessCategory:de.3:=softwareproduckte
locality:2.16.840.1.113730.3.3.2.18.1:=>= Québec
locality:fr:=>= Québec
locality:2.16.840.1.113730.3.3.2.18.1.4:=Québec
locality:fr.4:=Québec
mailHost:2.16.840.1.113730.3.3.2.5.1:=> schranka4
mailHost:en-GB:=> schranka4
mailHost:2.16.840.1.113730.3.3.2.5.1.5:=schranka4
mailHost:en-GB.5:=schranka4
uid:2.16.840.1.113730.3.3.2.49.1:=* *ming
uid:zh:=* *ming
uid:2.16.840.1.113730.3.3.2.49.1.6:=* *ming
uid:zh.6:=* *ming