mirror of
https://github.com/luzifer-docker/openldap.git
synced 2024-11-14 20:22:41 +00:00
Added possibility to load additional schemas
This commit is contained in:
parent
59c1d03bf3
commit
d7beb4a790
2 changed files with 19 additions and 3 deletions
10
README.md
10
README.md
|
@ -61,6 +61,16 @@ allows password protected access to the `dn=config` branch. This helps to
|
||||||
reconfigure the server without interruption (read the
|
reconfigure the server without interruption (read the
|
||||||
[official documentation](http://www.openldap.org/doc/admin24/guide.html#Configuring%20slapd)).
|
[official documentation](http://www.openldap.org/doc/admin24/guide.html#Configuring%20slapd)).
|
||||||
|
|
||||||
|
One can load additional schemas provided in the `slapd` package that are not
|
||||||
|
installed using the
|
||||||
|
|
||||||
|
SLAPD_ADDITIONAL_SCHEMAS
|
||||||
|
|
||||||
|
environment variable with comma-separated enties. As of writing these
|
||||||
|
instructions, there are the following additional schemas available:
|
||||||
|
`collective`, `corba`, `duaconf`, `dyngroup`, `java`, `misc`, `openldap`, `pmi`
|
||||||
|
and `ppolicy`.
|
||||||
|
|
||||||
After the first start of the image (and the initial configuration), these
|
After the first start of the image (and the initial configuration), these
|
||||||
envirnonment variables are not evaluated anymore.
|
envirnonment variables are not evaluated anymore.
|
||||||
|
|
||||||
|
|
|
@ -50,19 +50,25 @@ EOF
|
||||||
|
|
||||||
sed -i "s/^#BASE.*/${base_string}/g" /etc/ldap/ldap.conf
|
sed -i "s/^#BASE.*/${base_string}/g" /etc/ldap/ldap.conf
|
||||||
|
|
||||||
if [[ -n "$SLAPD_CONFIG_PASSWORD" ]]; then
|
if [[ -n "$SLAPD_CONFIG_PASSWORD" ]]; then
|
||||||
password_hash=`slappasswd -s "${SLAPD_CONFIG_PASSWORD}"`
|
password_hash=`slappasswd -s "${SLAPD_CONFIG_PASSWORD}"`
|
||||||
|
|
||||||
sed_safe_password_hash=${password_hash//\//\\\/}
|
sed_safe_password_hash=${password_hash//\//\\\/}
|
||||||
|
|
||||||
echo $sed_safe_password_hash
|
|
||||||
|
|
||||||
slapcat -n0 -F /etc/ldap/slapd.d -l /tmp/config.ldif
|
slapcat -n0 -F /etc/ldap/slapd.d -l /tmp/config.ldif
|
||||||
sed -i "s/\(olcRootDN: cn=admin,cn=config\)/\1\nolcRootPW: ${sed_safe_password_hash}/g" /tmp/config.ldif
|
sed -i "s/\(olcRootDN: cn=admin,cn=config\)/\1\nolcRootPW: ${sed_safe_password_hash}/g" /tmp/config.ldif
|
||||||
rm -rf /etc/ldap/slapd.d/*
|
rm -rf /etc/ldap/slapd.d/*
|
||||||
slapadd -n0 -F /etc/ldap/slapd.d -l /tmp/config.ldif >/dev/null 2>&1
|
slapadd -n0 -F /etc/ldap/slapd.d -l /tmp/config.ldif >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ -n "$SLAPD_ADDITIONAL_SCHEMAS" ]]; then
|
||||||
|
IFS=","; declare -a schemas=($SLAPD_ADDITIONAL_SCHEMAS)
|
||||||
|
|
||||||
|
for schema in "${schemas[@]}"; do
|
||||||
|
slapadd -n0 -F /etc/ldap/slapd.d -l "/etc/ldap/schema/${schema}.ldif" >/dev/null 2>&1
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
mv /etc/ldap /var/lib/ldap/config
|
mv /etc/ldap /var/lib/ldap/config
|
||||||
ln -s /var/lib/ldap/config /etc/ldap
|
ln -s /var/lib/ldap/config /etc/ldap
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in a new issue