Travando as configurações de Proxy no Mozilla Firefox para todos os usuários

Tutoriais Linux

Estes dias, ao customizar uma ISO do Ubuntu 12.04 LTS pra um cliente, me deparei com uma situação inusitada e interessante: como travar as configurações de Proxy no Mozilla Firefox para que as mesmas estejam disponíveis a todos os usuários de uma máquina?


Nos Sistemas Operacionais baseados em Linux, algumas configurações feitas no ambiente de um determinado usuário são específicas pra ele, ou seja, se você deslogar e logar novamente com outro usuário estas configurações não estarão disponíveis para outros usuários. Funciona assim com o Papel de Parede, ícones na área de trabalho (ou lançador, no caso do Ubuntu), e etc, bem como as configurações de Proxy. No meu caso eu precisava deixar as configurações de proxy pré-configuradas para todos os usuários e ainda fazer com que eles não conseguissem alterá-las. Depois de muito fuçar eu achei uma luz do que poderia ser a solução e com alguns testes consegui chegar a ela.

Lembra que eu falei que as configurações de proxy no Firefox são específicas pra determinado usuário? Então, elas ficam armazenadas no arquivo prefs.js dentro do diretório .mozilla, na home do usuário (o diretório mozilla é oculto, e logo tem um ponto na frente). Neste arquivo ficam armazenadas todas as configurações de usuário, não só o proxy: Home Page, habilitar/desabilitar pop-up, todo fica salvo neste arquivo.

O único problema é que esse arquivo não existe até que o usuário abra o Firefox a primeira vez. Na verdade o diretório .mozilla (onde também ficam armazenados os caches e cookies de sessão) também não existe até que o usuário abra o Firefox pela primeira vez. Por lógica se este diretório é criado pelo sistema, existem algum arquivo que é responsável pela criação do .mozilla e, no nosso caso específico, do arquivo prefs.js.

No diretório /usr/lib/firefox/defaults/preferences fica armazenado o arquivo syspref.js e nele podemos setar as configurações padrão para todos os usuários, pois o que editarmos nele será criado por padrão no arquivoprefs.js dos usuários. Abaixo estão as configurações necessária para travar as configurações de proxy para todos os usuários:

lockPref(“network.proxy.ftp”, “10.12.4.122″);
lockPref(“network.proxy.ftp_port”, 3128);
lockPref(“network.proxy.http”, “10.12.4.122″);
lockPref(“network.proxy.http_port”, 3128);
lockPref(“network.proxy.share_proxy_settings”, true);
lockPref(“network.proxy.socks”, “10.12.4.122″);
lockPref(“network.proxy.socks_port”, 3128);
lockPref(“network.proxy.ssl”, “10.12.4.122″);
lockPref(“network.proxy.ssl_port”, 3128);
lockPref(“network.proxy.type”, 1);

Inclusive no cabeçalho do arquivo ele explica como você pode usá-lo:

// This file can be used to configure global preferences for Firefox
// Example: Homepage
//pref(“browser.startup.homepage”, “http://www.weebls-stuff.com/wab/”);

Repare que no exemplo ele usa a sintaxe “pref” e no exemplo que eu citei antes eu usei a sintaxe “lockPref“, ou seja, o “lock” é o responsável por travar as configurações. Se você colocar só o “pref” as configurações estarão habilitadas por padrão, porém podem ser alteradas pelo usuário.

Abaixo temos o exemplo de como aparecem as configurações pro usuário após a edição do arquivo syspref.js:

Fonte