¿Hay alguna manera de deshabilitar la instalación de extensiones de Firefox por parte de usuarios que no sean administradores?
Algo así como. Puede aplicar la configuración de bloqueo con mozilla.cfg. Sin embargo, esto evitará que todos los usuarios utilicen funciones bloqueadas. Los administradores, por supuesto, pueden intercambiar el archivo de configuración a voluntad.
Aquí está la lista de configuraciones que implementamos mediante bloqueo. Es un entorno K-12, por lo que sus necesidades probablemente variarán.
//
lockPref("app.update.auto", false);
lockPref("app.update.enabled", false);
lockPref("app.update.silent", true);
lockPref("browser.cache.disk.capacity", 1000);
lockPref("browser.download.useDownloadDir", false);
lockPref("browser.rights.3.shown", true);
lockPref("browser.search.update", false);
lockPref("browser.shell.checkDefaultBrowser", false);
lockPref("extensions.update.enabled", false);
lockPref("plugin.default_plugin_disabled", false);
lockPref("plugin.scan.plid.all", true);
lockPref("plugins.hide_infobar_for_missing_plugin", true);
lockPref("profile.allow_automigration", false);
lockPref("signon.prefillForms", false);
lockPref("signon.rememberSignons", false);
lockPref("startup.homepage_override_url", "");
lockPref("startup.homepage_welcome_url", "");
lockPref("xpinstall.enabled", false);
lockPref("xpinstall.whitelist.required", true);
También vea la configuración de configuración bloqueada en los documentos oficiales de Mozilla.org.
Esta es una variación, compilada de los detalles útiles @ MDN , MozillaZine , PCC-Services , Mike's Musings
lockPref("xpinstall.enabled", false);
lockPref("extensions.enabledScopes", 0); // Or 4 or 8 for approved extensions
Components.utils.import("resource://gre/modules/FileUtils.jsm");
var profExtDir = FileUtils.getDir("ProfD", ["extensions"], false, false);
if ( profExtDir.exists() )
Tech_a_break; // here anything undefined would suffice
Las barras diagonales dobles (//) fuera del código denotan comentarios.
lockPref()
especifica una política, es decir, obligatoria: los usuarios no pueden modificar, mientras que
defaultPref()
o pref()
especifica una preferencia, es decir, no obligatoria: los usuarios pueden modificar el valor establecido inicialmente.
Establecer xpinstall.enabled
en falso deshabilita todas las instalaciones a través de (ejecutando) Firefox, es decir, instalaciones desde sitios web, Herramientas> Complementos> [Obtener complementos | Barra de búsqueda | icono de engranaje], Archivo> Abrir archivo y arrastrar y soltar. Los formatos del instalador son .xpi y .jar.
La configuración extensions.enabledScopes
a 0 deshabilita todas (excepto la carpeta de usuario (perfil) (Alcance 1) y la carpeta de administrador ) descubrimiento fuera de línea / manual (una vez en cada inicio de Firefox).
La ubicación híbrida de Scope 1 (usuario) (carpeta 'extensiones' del perfil de usuario) es el único almacén del primer método de instalación y está obsoleto al establecer xpinstall.enabled en falso, pero no se define (extensiones.enabledScopes) como una ubicación descubierta (segundo método de instalación). El segundo bloque de código anterior arroja un error cada vez que aparece esta ubicación y se cierra Firefox.
about: config , about: config Entradas , extensión de descripciones de configuración , instalación de extensiones , ubicaciones especiales
Para habilitar extensiones aprobadas a través de Firefox install_directory \ browser \ extensiones , configure extensions.enabledScopes
en 4 y agreguelockPref("extensions.autoDisableScopes", 11);
Alternativamente (en Windows), para habilitar extensiones aprobadas a través del registro de Windows HKLM , establezca extensions.enabledScopes
en 8 y extensions.autoDisableScopes
en 7 . El equivalente en GNU / Linux es / usr / share / mozilla / extensions / {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
Para habilitar ambas ubicaciones, use 12 y 3 respectivamente.
También es posible lockPref()
o defaultPref()
la configuración de esas extensiones que integran su configuración en about: config; generalmente las claves particulares en about: config incluirían el nombre de la extensión o parte del nombre o em: id .
Descargue y descomprima FoxyProxy en una subcarpeta de nivel superior en un recurso compartido de red (por ejemplo, FxExts de recurso compartido de red y foxyproxy de subcarpeta ). A continuación, cambie el nombre de la subcarpeta foxyproxy con el valor entre las etiquetas em: id en el archivo descomprimido install.rdf : foxyproxy se renombra como [email protected] .
Luego, en un archivo de texto, ingrese la ruta en la primera línea, es decir, \\ servidor \ FxExts \ [email protected] , y también cambie el nombre del archivo de texto (incluida la extensión .txt) con el valor em: id - Nuevo Text Document.txt se renombra como [email protected] .
Estos archivos de texto se pueden distribuir a Firefox install_directory \ browser \ extensiones , o se pueden incluir en el instalador de Firefox core \ browser \ extensiones .
Alternativa o adicionalmente a través del registro HKLM: Nombre [email protected] y Data \\ server \ FxExts \ [email protected]
En uno o ambos casos (alcances 4 y 8):
Para deshabilitar una extensión, cambie el nombre de la extensión de destino install.rdf a, por ejemplo disabled.rdf.
Para actualizar una extensión, elimine el contenido de su subcarpeta y desempaquete el nuevo XPI. Por lo general, el em: id único sería el mismo.
Si extensions.autoDisableScopes
se establece en 15 , los usuarios podrán buscar y activar extensiones preferidas a través de Herramientas (Alt + T)> Complementos: barra de búsqueda. Alternativamente, habilite una ubicación para extensiones activadas automáticamente que dejaría la otra para extensiones activadas (manualmente) por el usuario.
En Windows, denegue el permiso Leer datos en local-settings.js para que los usuarios / grupos estén exentos. En los sistemas GNU / Linux, una opción sería establecer los permisos básicos de local-settings.js como 0600 (con la raíz como ug), agregar todos los usuarios a un grupo (por ejemplo, fxgrp) dejando fuera a los usuarios que están exentos, y entoncessetfacl -m g:fxgrp:r local-settings.js
Tenga en cuenta que el uso de variables de entorno del sistema operativo no es seguro, ya que se puede omitir, a menos que se implementen medidas adicionales fuera del archivo de bloqueo (política).
Otra información: la barra de comandos de la consola del navegador se puede deshabilitar mediante una regla CSS en una hoja de estilo, por ejemplo, .jsterm-input-container {display:none;}
para centralizar esta hoja de estilo mediante un archivo de bloqueo (política):
var css = Components.classes["@mozilla.org/content/style-sheet-service;1"]
.getService(Components.interfaces.nsIStyleSheetService);
var ioSvc = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService)
.newURI("file://///server/share/Fx.css", null, null);
css.loadAndRegisterSheet(ioSvc, 1);
Fx.css (hoja de estilo) también se carga en el modo seguro de Firefox , y puede especificar tanto las reglas de Chrome (Firefox UI) como las de contenido ( páginas internas , páginas web). Para montajes NFS, SMB o sistema de archivos local, usefile:///
[ userChrome y userContent ] .css tienen la mayor prioridad, por lo que sería bueno verificar también la carpeta de Chrome , por ejemplovar profChrmDir = FileUtils.getDir("UChrm", false, false); if( profExtDir.exists() || profChrmDir.exists() )
Nombres e ID de elementos de Chrome , URL de Chrome , Trabajo con URL de Chrome
Las otras herramientas y el GCLI se pueden deshabilitar según sea necesario a través del archivo de bloqueo (política) - filtro para devtools*enabled
aproximadamente: config.
Para obtener detalles sobre nsInterfaces en Components.interfaces. * Consulte las interfaces XPCOM .
PD: para detectar de manera confiable errores y condiciones en el archivo .cfg de algunas ediciones de Firefox, puede ser necesario colocar todo el contenido del bloqueo (política) dentro de un bloque try, por ejemplo, try { var ...; lockPref(); } catch(e) { Components.utils.import("resource://gre/modules/Services.jsm"); Services.startup.quit(0x03); }
opcionalmente también incluir Services.prompt.alert(null, "Firefox", "Failed to start. Please inform the IT dept.");
en el bloque catch (e) {}.
XPConnect , XPCOM Interfaces , JSCM , omni.ja , referencia JS , JS rápidas , JS
Evitar que los usuarios instalen complementos es más difícil en versiones posteriores de Firefox. Firefox no respeta la preferencia xpinstall.enabled en algunas versiones. (Editar: vea el comentario a continuación: respetan esta preferencia a partir de la versión 31)
Para obtener una descripción detallada sobre cómo modificar Firefox para evitar que se muestre Add-on Manager y cómo evitar que los usuarios instalen complementos, consulte este artículo .
Las instrucciones no son para los débiles de corazón, pero funcionan; Tengo 700 máquinas encerradas en un entorno K-8 usando estas instrucciones.
Para obtener más información sobre cómo bloquear la configuración del navegador, consulte este artículo .