stoney core: OpenLDAP ldapseach and replace
Jump to navigation
Jump to 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"
# 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 }'