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

  • Beitrags-Autor:
  • Beitrags-Kategorie:Linux
  • Beitrags-Kommentare:0 Kommentare

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.

Schreibe einen Kommentar