stoney core: OpenLDAP ldapseach and replace

From stoney cloud
Revision as of 12:57, 14 December 2020 by Michael (Talk | contribs)


Jump to: navigation, search

Overview

This page collects some typical ldapsearch an replace use cases in the OpenLDAP directory.

Search an replace

Search an replace - Replace the content of sstMailFrom attribute

ldap_attribute="sstMailFrom"                                                  # The attribute we're interested in. For example: sstMailFrom
ldap_attribute_old="Support stepping stone GmbH <support@stepping-stone.ch>"  # Original (old) value of the attribute.
ldap_attribute_new="Support stepping stone AG <support@stepping-stone.ch>"    # The new value, that the original (old) value of the attribute is to be replaced with.
 
ldap_bind_password=''                                                         # The password of "cn=Manager,o=stepping-stone,c=ch"
 
 
ldap_server="ldaps://ldapm.stepping-stone.ch:636"
ldap_base="ou=services,o=stepping-stone,c=ch"
ldap_bind_account="cn=Manager,o=stepping-stone,c=ch"

Invalid language.

You need to specify a language like this: <source lang="html4strict">...</source>

Supported languages for syntax highlighting:

 [Expand


# Get all child entries.
children=$(ldapsearch -LLL -x -s children \
    -b "$ldap_base" \
    -H "$ldap_server" \
    -D "$ldap_bind_account" \
    -w "$ldap_bind_password" \
    "(${ldap_attribute}=${ldap_attribute_old})"

# The result will contain something like:
<source lang='lang=ldif'>
    
    
ldapsearch -LLL -x -s children \
  -H "ldaps://ldapm.stepping-stone.ch:636" \
  -b "ou=services,o=stepping-stone,c=ch" \
  -D "cn=Manager,o=stepping-stone,c=ch" \
  -w "${ldap_bind_password}" \
  "(sstMailFrom=Support stepping stone GmbH <support@stepping-stone.ch>)" \
  | awk '{ if (/^ /) { sub(/^ /, ""); } else printf "\n"; printf "%s", $0 }' \
  | awk '/^dn: / { print $2 }'