2012. április 5., csütörtök

Firefox 11 beállítása központilag

Az előző alkalommal kitárgyaltuk, hogy miként lehet kikapcsolni a Firefox helyi cache-ét. Ma másra vállalkozunk: megbeszéljük, hogy miként tudjuk a beállításokat úgy megadni, hogy a cache például a /tmp könyvtár alatt jöjjön létre. Sok leírás van ennek módjáról, de a legtöbb közvetlen a /tmp alá szórja be a cuccot. Az itteni megoldás attól lesz több, hogy a /tmp alatt kialakít egy, a felhasználó tulajdonában lévő mappát, és oda szemetel - így kilőve a közös cache okozta biztonsági problémát.

Ja, és közben - mintegy mellékesen - bemutatjuk, hogy miként menedzselhető az összes Firefoxunk egyetlen, az intranetes weben lévő fájlból:) A leírtak elvileg Windows alatt is mennek - de nem tesztelem.
Szóval az eljárás kicsit gubancos. Így működik. Próbáltam egyszerűsíteni, nekem úgy nem ment. A dolognak részben biztosan történelmi okai vannak - pár eljárás még a Firefox dédapjától, a Netscape Navigator-tól származik.

Az első feladat egy fájl elhelyezése a gépre telepített Firefox defaults/pref nevű mappájában. Ez a mappa Ubuntu 12.04-en az /usr/lib/firefox/defaults/pref,  Windows-on pedig a %ProgramFiles(x86)%\Mozilla Firefox\defaults\pref. Legyen mondjuk cucc.js, a tartalma pedig az alábbi:
pref("general.config.obscure_value", 0);
pref("general.config.filename", "mozilla.cfg");
A második sor elvileg nyilvánvaló. Az első pedig arról szól, hogy ez a configfájl valaha byteshiftelve volt, és ezt mi nem szeretnénk megtenni - a byteshift értéke 0. Bővebben a bejegyzés végén lévő linkekben.

Aztán jöhet a mozilla.cfg:
//Komment. Itt kell lennie, különben baj van.

try {

//Kezdolap es miegymas johet ide is
//lockPref("browser.startup.homepage","http://infoerettsegi.blog.hu");

//A lenyeg:
lockPref("autoadmin.global_config_url","file:///cucc/autoadmin.js");

} catch(e) {
displayError("lockedPref", e);
}
Az első sorba a komment tényleg kell. Ha nincs ott, a Firefox hibát jelez. A try-catch blokk arra jó, hogy ha valamit elbaltázunk, akkor legalább szól a Firefox (próbáljuk ki, egy gépelési hiba is jó).
És az a lényeg, hogy az a fájl az autoadmin.global_config_url részben nem csak helyi fájl  lehet. Úgy is megadható, hogy http://intranet.szerver.local/eleresi_ut/akarmi.js. Azaz egy webszerverre feltehető a konfigfájl, és kész.
A mozilla.cfg helye az /usr/lib/firefox/, illetve a  %ProgramFiles(x86)%\Mozilla Firefox\.

Na, akkor már csak az van hátra, amit a címben ígértem - a cache kimozgatása a /home/felhasználó/.mozilla/firefox/r4ndoMstRing.default/Cache mappából. Az autoadmin.js legyen az alábbi:
var env_user = getenv("USER");
var cache_dir = "/tmp/Firefox-" + env_user + "/Cache/";
lockPref('browser.cache.disk.parent_directory', cache_dir);
És azt látjuk, hogy megy a dolog:) A /tmp alatt létrejön a megfelelő mappa, amit csak a tulajdonos olvashat-írhat. Ráadásul a /tmp mappát valamelyik initszkript induláskor törli, azaz a büdös életben nem telik be, ha a gépet néha újraindítjuk - legyen akárhány felhasználónk.

Irodalom:
http://mit.edu/~firefox/www/maintainers/autoconfig.html
http://mockbox.net/configmgr-sccm/174-install-and-configure-firefox-silently.html
https://developer.mozilla.org/en/MCD,_Mission_Control_Desktop_AKA_AutoConfig
http://www.kai-hildebrandt.de/tutorials/firefox_autoconfig.html
http://kb.mozillazine.org/About:config_entries
http://community.spiceworks.com/how_to/show/2167

Legközelebb megoldjuk, hogy az XDG-t támogató programok se tegyék a cache fájljait a /home/$USER alá. Ilyen program a Chromium is.

Nincsenek megjegyzések: