From a4ef2c0a6be1cdca440e16dba5b87a69c74ec9a8 Mon Sep 17 00:00:00 2001
From: CdRom1 <r.maliach@live.fr>
Date: Wed, 28 Nov 2018 19:38:40 +0100
Subject: [PATCH] ldap-virtual-mailbox-maps: pas un copy, mais un write bash

---
 pica-mail-mta/entrypoint.sh             | 11 ++++++++++-
 pica-mail-mta/ldap-virtual-mailbox-maps | 14 --------------
 2 files changed, 10 insertions(+), 15 deletions(-)
 delete mode 100644 pica-mail-mta/ldap-virtual-mailbox-maps

diff --git a/pica-mail-mta/entrypoint.sh b/pica-mail-mta/entrypoint.sh
index 364bd2c7..4de6fa6b 100755
--- a/pica-mail-mta/entrypoint.sh
+++ b/pica-mail-mta/entrypoint.sh
@@ -15,7 +15,16 @@ postconf -e "myhostname=${MY_HOSTNAME}"
 postconf -e "virtual_transport = lmtp:inet:${LMTP_LAN_HOSTNAME}:${LMTP_PORT}"
 #noms de domaines des boîtes gérées par ce serveur de fin de chaîne
 postconf -e "virtual_mailbox_domains = ${MY_DOMAIN}, localhost.${MY_DOMAIN}, localhost"
-#préfixe pour éviter que des mails buggués atterissent n'importe où dans le système de fichiers (c'est une sécurité mais c'est pas ça qui fait que ça marche)
+#map: donne la liste des adresses existantes
+cat <<EOF >> /etc/postfix/ldap-virtual-mailbox-maps
+server_host = ${LDAP_PROTOCOL}://${LDAP_SERVER_HOSTNAME}:${LDAP_PORT}
+search_base = ${LDAP_SEARCH_BASE}
+query_filter = ${LDAP_VIRTUAL_MAILBOX_FILTER}
+bind = yes
+bind_dn = ${LDAP_BIND_DN}
+bind_pw = ${LDAP_BIND_PW}
+result_attribute = uid
+EOF
 postconf -e "virtual_mailbox_maps = ldap:/etc/postfix/ldap-virtual-mailbox-maps"
 #en dessous de ce degré de "vérité", les boîtes non trouvées en table sont rejetées. (100 correspond à un "vrai" simple, mais il est possible de définir différents degrés d'appartenance à la table des utilisateurs dans des configurations plus complexes: une boîte pourrait par exemple avoir le bon nom de domaine mais pas le bon nom d'utilisateur, mais ne pas être rejetée;)
 postconf -e "virtual_minimum_uid = 100"
diff --git a/pica-mail-mta/ldap-virtual-mailbox-maps b/pica-mail-mta/ldap-virtual-mailbox-maps
deleted file mode 100644
index 1ce042d9..00000000
--- a/pica-mail-mta/ldap-virtual-mailbox-maps
+++ /dev/null
@@ -1,14 +0,0 @@
-#on met en commentaire ces paramètres parce qu'ils seront écrits lors de l'entrypoint
-#hôte, port et protocole (on pourrait utiliser ldaps)
-#   server_host = ldap://ldap.test.picasoft.net:389
-#niveau de l'arborescence LDAP à partir duquel on commencer à chercher dans les entrées
-#   search_base = dc=picasoft,dc=net
-#filtre permettant d'accepter certaines entrées: ici, le paramètre en entrée est %s
-#uid correspond au champ LDAP utilisé, on aurait pu aussi utiliser cn, ou n'importe quel autre champ, c'est arbitraire.
-#   query_filter = uid=%s
-#ce qui sera retourné par la requête. Comme le but est seulement de vérifier si l'adresse existe, il faut juste que ce champ soit non vide.
-#   result_attribute = uid
-#le bind au serveur (un utilisateur spécial utilisé pour se connecter au LDAP et lire son arborescence (à l'exception des hashs de password))
-#   bind = yes
-#   bind_dn = cn=nss,dc=picasoft,dc=net
-#   bind_pw = rdonly
-- 
GitLab