#!/bin/bash SERV_DIR=$(cd $(dirname $0); pwd) KAZ_ROOT=$(cd $(dirname $0)/../..; pwd) . "${KAZ_ROOT}/bin/.commonFunctions.sh" setKazVars cd $(dirname $0) . "${DOCKERS_ENV}" . "${KAZ_KEY_DIR}/env-${ldapServName}" . "${KAZ_KEY_DIR}/env-${ldapUIName}" checkDockerRunning "${ldapServName}" "LDAP" || exit printKazMsg "\n *** Premier lancement de LDAP : Mise en place" LDAP_IP=$(docker inspect -f '{{.NetworkSettings.Networks.ldapNet.IPAddress}}' ldapServ) MAIL_IP=$(docker inspect -f '{{.NetworkSettings.Networks.ldapNet.IPAddress}}' mailServ) docker exec ${ldapUIName} bash -c "echo '${MAIL_IP} ${smtpHost}.${domain}' >> /etc/hosts" BINDDN=cn=${LDAP_ADMIN_USERNAME},${ldap_root} DC=$(echo ${ldap_root} | cut -d',' -f1 | cut -d'=' -f2) for schema in `ls schemas/` do ldapadd -H ldap://$LDAP_IP -D "cn=${LDAP_CONFIG_ADMIN_USERNAME},cn=config" -w ${LDAP_CONFIG_ADMIN_PASSWORD} -f schemas/${schema} done echo "dn: ${ldap_root} objectClass: dcObject objectClass: organization dc: $DC o: Kaz" | ldapadd -H ldap://$LDAP_IP -D "${BINDDN}" -w ${LDAP_ADMIN_PASSWORD} ./update.sh CONFIG_IHM="${DOCK_VOL}/ldap_configSSP/_data/config.inc.php" updateVarInConf(){ # $1 key # $2 val # $3 file # $4 : vide => la valeur sera encadré par des guillement, sinon c'est du php if grep -q "^\s*\$$1" "$3" ; then echo " update ${CYAN}${BOLD}$1${NC} => $2" # !!! les valeur ne doivent pas contenir le caractère '%' if [ -z "$4" ]; then sed -i -e "s%^\s*\(\$$1\s*=\).*$%\1 \"$2\";%" "$3" else sed -i -e "s%^\s*\(\$$1\s*=\).*$%\1 $2;%" "$3" fi else echo " add ${CYAN}${BOLD}$1${NC} => $2" if [ -z "$4" ]; then echo "\$$1 = \"$2\";" >> "$3" else echo "\$$1 = $2;" >> "$3" fi fi } updateVarInConf "ldap_url" "${LDAPUI_URI}" "${CONFIG_IHM}" updateVarInConf "ldap_binddn" "${LDAPUI_ADMIN_BIND_DN}" "${CONFIG_IHM}" updateVarInConf "ldap_bindpw" "${LDAPUI_ADMIN_BIND_PWD}" "${CONFIG_IHM}" updateVarInConf "ldap_base" "${LDAPUI_BASE_DN}" "${CONFIG_IHM}" updateVarInConf "ldap_login_attribute" "cn" "${CONFIG_IHM}" updateVarInConf "hash" "CRYPT" "${CONFIG_IHM}" updateVarInConf "use_questions" "false" "${CONFIG_IHM}" "php" updateVarInConf "mail_from" "admin@${domain}" "${CONFIG_IHM}" updateVarInConf "mail_from_name" "Récupération de mot de passe Kaz" "${CONFIG_IHM}" updateVarInConf "mail_smtp_host" "${smtpHost}.${domain}" "${CONFIG_IHM}" updateVarInConf "use_sms" "false" "${CONFIG_IHM}" "php" updateVarInConf "keyphrase" "${LDAPUI_PASSWORD}" "${CONFIG_IHM}" updateVarInConf "lang" "fr" "${CONFIG_IHM}" updateVarInConf "allowed_lang" "array('fr', 'br');" "${CONFIG_IHM}" "php" updateVarInConf "mail_smtp_secure" "tls" "${CONFIG_IHM}" updateVarInConf "mail_address_use_ldap" "true" "${CONFIG_IHM}" updateVarInConf "mail_attributes" "array(\"mailDeSecours\", \"mail\")" "${CONFIG_IHM}" "php" updateVarInConf "pwd_min_length" "10" "${CONFIG_IHM}" updateVarInConf "pwd_min_special" "2" "${CONFIG_IHM}" updateVarInConf "pwd_show_policy" "always" "${CONFIG_IHM}" updateVarInConf "posthook" "/var/www/kaz/post-hook.sh" "${CONFIG_IHM}" updateVarInConf "posthook_password_encodebase64" "true" "${CONFIG_IHM}" docker cp "${KAZ_BIN_DIR}/look/kaz/kaz-tete.png" "${ldapUIName}:/var/www/html/images/ltb-logo.png"