Notes/tips/lessons learned on use of ldapsearch¶
In its simplest form:
# ldapsearch -x # extended LDIF # # LDAPv3 # base <dc=example,dc=com> (default) with scope subtree # filter: (objectclass=*) # requesting: ALL #
# example.com dn: dc=example,dc=com objectClass: dcObject objectClass: organization o: Example Company dc: example
# admin, example.com dn: cn=admin,dc=example,dc=com objectClass: organizationalRole cn: admin
# search result search: 2 result: 0 Success
# numResponses: 3 # numEntries: 2
Notice, no config section:
# ldapsearch -D cn=admin,cn=config -w mypwd -b cn=config
[[ HUGE amount snipped ]] # search result search: 2 result: 0 Success
# numResponses: 19 # numEntries: 18
So, need to trim that down a bit. The format is
ldapsearch [ -x | -D ... ] -b ${base} ${filter} ${subfilter}
For instance:# ldapsearch -D cn=admin,cn=config -w 3pizda -b cn=config dn | grep ^dn
dn: cn=config dn: cn=schema,cn=config dn: cn={0}corba,cn=schema,cn=config dn: cn={1}core,cn=schema,cn=config dn: cn={2}cosine,cn=schema,cn=config dn: cn={3}duaconf,cn=schema,cn=config dn: cn={4}dyngroup,cn=schema,cn=config dn: cn={5}inetorgperson,cn=schema,cn=config dn: cn={6}java,cn=schema,cn=config dn: cn={7}misc,cn=schema,cn=config dn: cn={8}nis,cn=schema,cn=config dn: cn={9}openldap,cn=schema,cn=config dn: cn={10}ppolicy,cn=schema,cn=config dn: cn={11}collective,cn=schema,cn=config dn: olcDatabase={-1}frontend,cn=config dn: olcDatabase={0}config,cn=config dn: olcDatabase={1}monitor,cn=config dn: olcDatabase={2}bdb,cn=config
Now, if you wanted to find out what’s in the bdb database config. Notice that you use the RDN, not the full one:
# ldapsearch -D cn=admin,cn=config -w 3pizda -b cn=config 'olcDatabase={2}bdb' # extended LDIF # # LDAPv3 # base <cn=config> with scope subtree # filter: olcDatabase={2}bdb # requesting: ALL #
# {2}bdb, config dn: olcDatabase={2}bdb,cn=config objectClass: olcDatabaseConfig objectClass: olcBdbConfig olcDatabase: {2}bdb olcDbDirectory: /var/lib/ldap olcSuffix: dc=example,dc=com olcAddContentAcl: FALSE olcLastMod: TRUE olcMaxDerefDepth: 15 olcReadOnly: FALSE [[snip]]
OK, so that’s still alot of crap. What if you want just the dbdirectory:
# ldapsearch -D cn=admin,cn=config -w 3pizda -b cn=config 'olcDatabase={2}bdb' olcdbdirectory # extended LDIF # # LDAPv3 # base <cn=config> with scope subtree # filter: olcDatabase={2}bdb # requesting: olcdbdirectory #
# {2}bdb, config dn: olcDatabase={2}bdb,cn=config olcDbDirectory: /var/lib/ldap
# search result search: 2 result: 0 Success
# numResponses: 2 # numEntries: 1