Autoconfig - Zentrale Kontrolle über den Webbrowser Firefox (ab Version 4)
Einleitung
Für zu Hause uninteressant, in einem Firmennetzwerk unerlässlich: Die Zentrale Verwaltung von Programmeinstellungen. Microsft hat sich so nette Dinge wie Gruppenrichtlinien einfallen lassen, um Einstellungen ihrer Programme (und anderer Programme, die ihre Konfiguration in der Registrierung ablegen) zentral zu steuern.
Das Mozilla Projekt geht hier aber andere Wege und die Einstellungen des Webbrowsers Firefox werden nicht in der Registrierung gespeichert. Für die Konfiguration des Browsers wird Autoconfig verwendet, das hier im Folgenden schrittweise angewendet werden soll.
Seit Firefox Version 4 haben sich grundlegende Änderungen in der zentralen Konfiguration ergeben. Ich habe die Anleitung deshalb vollständig neu erstellt. Hier geht es zur alten Anleitung für ältere Firefox-Versionen (bis Version 3).
« zurück (Gesammelte Anleitungen)
Inhalt
- Firefox - Wo finde ich was
- Die Konfigurationsdatei
local-settings.js
:
Verweis auf eine zentrale Konfigurationsdatei - Die Konfigurationsdatei
autoconfig.js
:
Festlegen der Zentralen Einstellungen für Firefox - Abschließende Bemerkung
- Weiterführende Links
« zurück (Gesammelte Anleitungen)
Firefox - Wo finde ich was
Seit Firefox 4 hat sich die zentrale Konfiguration des Browsers vereinfacht und die Verzeichnisstruktur wurde bereinigt. Die mitgelieferten Konfigurationsskripte müssen nicht mehr angefasst werden und werden bei Aktualisierung von Firefox somit auch nicht mehr überschrieben.
Die Konfigurationsskripte liegen unterhalb von $INSTALLDIR\defaults\pref
, also bei Windows bei einer Firefox
Standardinstallation in C:\Programme\Mozilla Firefox\defaults\pref
Hinweis: In dem Verzeichnis befinden sich bereits Dateien, die aber zur Firefox-Installation gehören und nicht geändert werden sollten!
Die Konfigurationsdatei local-settings.js
: Verweis auf eine zentrale Konfigurationsdatei
In dem oben genannten Konfigurationsverzeichnis $INSTALLDIR\defaults\pref
legt man eine neue Datei an, z. B.
mit dem Namen local-settings.js
.
Wichtig bei der Namensgebung ist lediglich, dass sich der Name nicht mit den mitgelieferten Konfigurationsdateien
überschneidet und dass die Datei die Endung .js
hat.
Im Folgenden wird der Name local-settings.js
für diese Datei verwendet.
Es gibt zwei verschiedene Fälle für eine zentrale Konfiguration:
-
Terminalserver:
Firefox ist auf einem Terminalserver installiert und für jeden Benutzer sollen ein paar Einstellungen vorgegeben werden, die nicht überschrieben werden können. Die aufgerufene Konfigurationsdatei liegt hierbei auf der lokalen Festplatte, normalerweise auch im $INSTALLDIR von Firefox. -
Lokale Installationen und/oder Terminalserver:
Firefox ist auf vielen Arbeitsstationen installiert und man verweist auf eine Konfigurationsdatei, die auf einem Webserver im lokalen Netzwerk liegt. Ob die Installation nun auf einer normalen Arbeitsstation oder einem Terminalserver liegt, ist unerheblich. Alle Benutzer sollen dieselbe Konfiguration erhalten.
Um einen Verweis auf eine globale Konfigurationsdatei in local-settings.js
einzubauen, müssen lediglich
zwei Variablen über die Methode pref(attribute,value)
oder lockPref(attribute,value)
gesetzt werden:
// Datei: $INSTALLDIR\defaults\prefs\local-settings.js pref("general.config.filename", "autoconfig.js"); pref("general.config.obscure_value", 0); // for MCD .cfg files
Der angegebene Dateiname wird relativ zu $INSTALLDIR ausgewertet. Die Variable obscure_value
bezieht sich auf eine Rotation der
einzelnen Zeichen um n Stellen (default: 13, auch bekannt als ROT13), um die Konfigurationsdatei
auf den ersten Blick des Benutzers unleserlich zu machen.
Dieser Wert muss explizit auf 0 gesetzt sein, damit die Konfigurationsdatei gelesen werden kann. Wenn die Autokonfiguration nicht funktioniert, liegt es oft an der fehlenden Zeile für den "obscure_value".
Die Konfigurationsdatei autoconfig.js
: Festlegen der Zentralen Einstellungen für Firefox
Im zweiten oben genannten Fall (viele lokale Installationen von Firefox), muss der Inhalt der Datei
autoconfig.js
wie folgt angepasst werden:
// Datei: $INSTALLDIR\autoconfig.js // Umleitung zur eigentlichen, zentralen Konfiguration lockPref("autoadmin.global_config_url","http://192.168.100.10/global_settings.js");
Erläuterungen
Die Methode lockPref()
setzt eine Einstellung, und deaktiviert das entsprechende Steuerelement in der Firefox-Oberfläche bzw. in
about:config
, damit der Benutzer die Einstellung nicht mehr ändern kann. Gesperrte Einträge werden in about:config
kursiv dargestellt.
Die Einstellung autoadmin.global_config_url
legt die Position der zu ladenden Konfigurationsdatei global_settings.js
fest,
die sich auf einem internen Webserver mit der IP-Adresse 192.168.100.10 befindet.
Hinweis: Die Dateinamen der Konfigurationsdateien sollten keine Minuszeichen enthalten, da diese von Firefox intern als Trennzeichen verwendet werden. Stattdessen kann man z. B. Unterstriche verwenden.
Mit der Einstellung in der Datei autoconfig.js
wird bei jedem Start von Firefox z. B.
die folgende Datei geladen und ausgeführt:
Inhalt der Datei global_settings.js
// Datei: global_settings.js // im WWW-Rootverzeichnis auf 192.168.100.10 // // Beschreibung: // Globale Einstellungen fuer den Firefox Browser via Autoconfig. // // Quellen: // http://mit.edu/~firefox/www/maintainers/autoconfig.html // http://kb.mozillazine.org/About:config_entries // try { // Proxy Server Einstellungen // Werte für alle Protokolle (http, https/ssl, ftp) explizit setzen, // obwohl das Häkchen "diesen Proxy für alle Protokolle verwenden" gesetzt // ist (BUG?) pref("network.proxy.http", "192.168.100.10"); pref("network.proxy.http_port", 8080); pref("network.proxy.ssl", "192.168.100.10"); pref("network.proxy.ssl_port", 8080); pref("network.proxy.ftp", "192.168.100.10"); pref("network.proxy.ftp_port", 8080); pref("network.proxy.share_proxy_settings", true); pref("network.proxy.type", 1); pref("network.proxy.no_proxies_on", "127.0.0.1, localhost, 192.168.*.*, *.mydomain.example.com"); // Benutzer duerfen keine Updates einspielen lockPref("app.update.enabled", false); lockPref("extensions.update.enabled", false); lockPref("browser.search.update", false); // FF als Standardbrowser lockPref("browser.shell.checkDefaultBrowser", false); lockPref("pref.general.disable_button.default_browser", true); // Inhalte (JavaScript und Java) pref("javascript.enabled", true); lockPref("security.enable_java", false); // keine fehlenden Plugins nachladen und auch nicht in Registry danach scannen lockPref("xpinstall.enabled", false) lockPref("plugin.default_plugin_disabled", false); // Intranetseite als Startseite lockPref("browser.startup.homepage", "http://intranet.mydomain.example.com/"); // Ordner fuer Downloads jedesmal erfragen pref("browser.download.useDownloadDir", false); } catch(e) { displayError("ARGL :-P", e); }
Hinweis: Soll nur eine zentrale Konfiguration einer Terminalserverinstallation (erster Fall oben) stattfinden, entspricht der
Inhalt der Datei autoconfig.js
dem der Datei global_settings.js
und
diese entfällt.
Erläuterungen
Wie oben bereits erwähnt, gibt es die beiden Methoden pref(attribute,value)
und lockPref(attribute,value)
, um
Einstellungen festzulegen.
Mit pref(attribute,value)
wird ein Wert gesetzt, bleibt aber für den Benutzer zur Laufzeit änderbar. Ein Möglicher
Anwendungsfall wäre z. B. die Einstellung von (de)aktviertem JavaScript. Der Wert wird aber bei jedem Firefox Start erneut gesetzt.
Mit lockPref(attribute,value)
gesetzte Werte werden in der Oberfläche und about:config
gesperrt. Der Benutzer hat
hier keine Möglichkeit mehr, das Verhalten zur Laufzeit zu verändern. Denkbare Anwendung hierfür ist z. B. die lästige
Updatefunktion, die auf einem Terminalserver mit Benutzerrechten jedes Mal fehlschlagen würde und zu für Benutzer unverständlichen
Fehlermeldungen führt.
Welche Werte in der oben stehenden Datei global_settings.js
gesetzt werden, ist durch eine Kommentarzeile darüber erklärt.
Sollte beim Setzen der Werte etwas schiefgehen und eine Ausnahme geworfen werden, wird beim Start von Firefox eine Fehlermeldung ausgegeben,
die in ihrer Form hier noch Verbesserungspotenzial besitzt.
Abschließende Bemerkung
Autoconfig ist eine gute Möglichkeit, Firefox-Installationen zentral und betriebssystemunabhängig zu verwalten. Leider heißt das aber auch, dass man hierfür an einer anderen Stelle konfigurieren muss, als es beim Rest des Systems der Fall ist, wie z. B. im Falle von Windows mit seinen Gruppenrichtlinien.
Gerade die Möglichkeit aber, eine Datei über Webtechnologien einzubinden, zeigt sich meiner Meinung nach auch die Eleganz dieser Lösung: Schließlich ist der Firefox im Web zu Hause.
Seit Firefox 4 hat sich der interne Aufbau der Autokonfiguration vereinfacht und wird auch bei Updates des Browsers beibehalten.
Weiterführende Links
-
Alternative Anleitung (englisch):
Autoconfig in Firefox 4 -
API Reference (englisch):
Writing Configuration Files (The SIPB Firefox Locker - Maintainers) -
Liste aller veränderbaren Variablen:
mozillaZine - About:config entries