Categories: Linux

Datei auf Veränderung überwachen – Automatische Config für Thunderbird

Die Einstellungen von Thunderbird für eine größere Anzahl von Mitarbeitern vorzunehmen ist etwas mühsam. Jeden Mitarbeiter freie Hand bei den Einstellungen zu lassen ist allerdings bei mittleren bis großen Unternehmen auch nicht wirklich tragbar.

Also musste eine Lösung her – eine Datenbank in der wir die Konfiguration neutralisiert speichern, per Script auslesen, mit den Account Daten je User versorgen um anschließend die prefs.js vom Thunderbird im Verzeichnis des Benutzer ersetzen.

Das Profilverzeichnis von Thunderbird haben wir im Netzwerk auf das Home-Verzeichnis des Benutzers verlegt, es kann also bequem vom Linux Server (Samba) darauf zugegriffen werden.

Der schwierigste Teil war es das PHP Script zu bauen welches die neutralisierte Konfiguration aus der Datenbank liest und anschließend je nach Benutzer entsprechend mit den passenden Einstellungen versieht. Unser Script funktioniert jetzt mit bis zu 6 verschiedenen Mail-Accounts je Benutzer und unterstützt auch die verschiedenen von uns eingesetzen Mail-Server.

Thunderbird muss leider auf die prefs.js schreiben können, sonst funktionieren gewisse Sachen nicht z.B. die Darstellung von unterschiedlichen Schriftarten in den Mails.
Daher konnten wir nicht einfach die prefs.js Datei schreibgeschützt ablegen.

Als Lösung bietet sich an die prefs.js nach jeder Änderung einfach durch das Original aus der Datenbank zu ersetzen, stellt sich nur die Frage wie man mitbekommt dass die Datei verändert wurde!? 🙂

Für den Zweck gibt es auch eine ganz einfach Lösung, unter Ubuntu braucht es nur das zusätzliche Paket inotify-tools und anschließend läuft folgendes Script:

#!/bin/bash

while { X=$(inotifywait -e modify -e close_write -e create /srv/samba/home/*/thunderbird/prefs.js 2>/dev/null); }; do
 USER=$(echo $X|awk -F’/‘ ‚{print $5}‘)
 FILE=$(echo $X|awk -F‘ ‚ ‚{print $1}‘)
 wget -q „http://webserver/build_prefs.php?email=EMAILADRESSE“ -O „$FILE“
done

Und schon wird die Datei bei jeder Veränderung mit den vorgegebenen Einstellungen überschrieben.

Damit das Script permanent läuft braucht es noch eine Config Datei für upstart im Verzeichnis /etc/init/ die kann wie folgt aussehen:

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /usr/local/sbin/watch_prefsjs.sh

Für mich zeigt sich hier wieder mal die Stärke von OpenSource und Linux – wofür man sonst viel Geld ausgeben müsste kann man sich hier schnell und einfach selber basteln.

Manfred

Recent Posts

VM – ZFS Partition online vergrößern

Man macht es nicht jeden Tag, darum schadet es nicht sich's kurz zu notieren... Hier…

9 Monaten ago

Samba Password History für einen User löschen

Meine Suche bei Google hatte mal wieder keinen vernünftigen Treffer gelandet, das Problem - ich…

9 Monaten ago

HP Eine Firma von der ich nicht mal geschenkte Drucker nehmen würde!!!

Ich muss mal eben etwas Druck ablassen, ein Kunde von mir setzt einen Drucker von…

12 Monaten ago

IRMC Console Redirection ohne Lizenz

Wer beim Server bestellen vergessen hat die erweiterte IRMC Lizenz zu ordern, der steht vor…

1 Jahr ago

WOL im BIOS aktivieren reicht nicht immer

Ich nutze seit langer Zeit ein System für meine Backups welches in der Nacht von…

1 Jahr ago

Apache Guacamole mit TOPT – funktioniert nicht

Es scheint wohl eine noch nicht so häufig genutzte Kombination zu sein - Apache Guacamole…

1 Jahr ago