Ich benutze die V7-Mail-Dockerlösung unter 6.2. Ziel: Übergang von 6.2 auf 7 ermöglichen.
Das geht auch ganz gut. Es fehlen noch die Email-Gruppen wie teachers@schule.tld und p-englisch@schule.tld.
Ich kann sie manuell per alias-datei pflegen, aber das ist fehlerträchtig. Besser wäre die Daten aus dem LDAP zu ziehen.
postmap findet also die Gruppe und schlägt den ersten memberUID administrator nach. Dabei wird davon ausgegangen, das memberUID ein DN ist. Der müsste so aus sehen: uid=administrator,ou=accounts, dc=schule,dc=tld.
Ich sehe aber keine Möglichkeit den zweite LDAPabfrage innerhalb von Postfix zu ändern. Hat jemand eine Idee?
Idee: Ich könnte die Einträge im LDAP auf das von Postfix erwartete Format bringen. Es ist aber für mich nicht abzusehen, wo mir das auf die Füße fällt. Hat dazu jemand Überblick?
Bei der LMN 6 verwaltet Sophomorix die Mailverteiler über die /etc/aliases. Bei der LMN 7 geht das über den LDAP.
Die Frage ist nun, ob es sich rentiert, das für die LMN 6 nachzubilden. Nach dem Umstieg sind die Gruppen ja nach wie vor (oder besser: wieder, ist ja ein ganz neues Feature) nutzbar, nur eben über einen anderen Mechanismus.
Jörg, du hast recht. Es ist entweder eine „low-hanging-fruit“ oder ich lasse es. Es rechnet sich dann, wenn ich es brauche. Ich brauche es dann, wenn die Migration nicht so läuft, wie geplant: schnell und gut. Und da sich der LDAP bei uns überall hineingefressen hat, halte ich es für möglich das ich nicht einfach „umschalten und fertig“ machen kann.
idee: Ich benutze ein unbenutztes Attribut für die Mailadresse. Da muss ich nur durch die memberUIDs gehen und z.B. in das Attribut description (scheint für posixGroup erlaubt und unbenutzt) die Mailadresse schreiben. Dann passe ich meine LDAP-Abfrage entsprechend an. Wenn ich das per Cron-script einmal am Tag mache, bin ich tagesaktuell und vermeide Übertragungsfehler in meiner /etc/alias.
Spricht was dagegen?
auf dem LML 6.2 Server erstellt ein Script alias-dateien für Schulklassen und das Kollegium. Der Rest ändert sich so wenig, dass ich den per Hand pflegen kann.
Das Script lädt die Alias-Dateien hoch. Sie werden in den Dockercontainer weiter gereicht.
Das Script lässt den Postfix im Dockercontainer die Aliase neu einlesen.
So sehen die Scripte auf dem LML-Server aus:
server1 ~ # cat /etc/cron.daily/maillists
#!/bin/bash
/usr/local/bin/maillist-schueler.sh > /tmp/schueler.cf
/usr/local/bin/maillist-kollegium.sh > /tmp/kollegium.cf
scp /tmp/schueler.cf /tmp/kollegium.cf root@mail.carlbosch.de:/srv/docker/linuxmuster-mail/config/
ssh root@mail.carlbosch.de /usr/bin/docker exec mail postfix reload
#-----------------------------------------------------------------------------------------------------
server1 ~ # cat /usr/local/bin/maillist-schueler.sh
#!/bin/bash
emaildomain="@unseremail.de"
studentsDir="/home/students"
for klasse in $(find "$studentsDir" -maxdepth 1 -mindepth 1 -type d -printf '%f\n')
do
echo ""
echo -e "$klasse$emaildomain"
for student in $(find "$studentsDir/$klasse" -maxdepth 1 -mindepth 1 -type d -printf '%f\n')
do
echo -e " $student$emaildomain"
done
done
#-----------------------------------------------------------------------------------------------------------
server1 ~ # cat /usr/local/bin/maillist-kollegium.sh
#!/bin/bash
emaildomain="@unseremail.de"
echo "kollegium$emaildomain"
for lehrer in $(cat /etc/sophomorix/user/lehrer.txt | awk -F";" '{print $5}')
do
echo " $lehrer$emaildomain"
done
Die Konfiguration auf dem Mailserver sieht so aus:
Allerdings ist die Frage, ob man das braucht: Bei der LMN 7 gibt es im
LDAP Gruppen für Klassen und Projekte, die man direkt als Mailverteiler
verwenden kann.
Ich gehe davon aus. Ich lasse zwei Dateien mit Aliasen durch cron-job erstellen. Dazu wird die Ordnerstruktur von /home/students bzw. die lehrer.txt von sophomorix missbraucht. Ich vermute, dass die Ordnerstruktur in LML7 gleich geblieben ist. Die Kollegiumsliste kann man ebenso aus den /home-Ordnerstrukturen entnehmen, sollte es die lehrer.txt nicht mehr geben.
Wie Jörg schon angemerkt hat: Mehr als ein Hack ist es nicht.