¿Hay alguna forma para que los administradores deshabiliten a los usuarios de instalar extensiones de Firefox?

13

¿Hay alguna manera de deshabilitar la instalación de extensiones de Firefox por parte de usuarios que no sean administradores?

Victor Rodrigues
fuente

Respuestas:

12

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.

jscott
fuente
6

Esta es una variación, compilada de los detalles útiles @ MDN , MozillaZine , PCC-Services , Mike's Musings

Para bloquear / evitar extensiones (incluir esto en el archivo de bloqueo (política) ):

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.enableden 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.enabledScopesa 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


Extensiones aprobadas

Para habilitar extensiones aprobadas a través de Firefox install_directory \ browser \ extensiones , configure extensions.enabledScopesen 4 y agreguelockPref("extensions.autoDisableScopes", 11);

Alternativamente (en Windows), para habilitar extensiones aprobadas a través del registro de Windows HKLM , establezca extensions.enabledScopesen 8 y extensions.autoDisableScopesen 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 .


Tienda interna, Extensiones centralizadas ( FoxyProxy como ejemplo):

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 .

  • En cada inicio, Firefox revisa los archivos de texto y elimina (bajo cuentas de administrador) cualquier error o si el recurso compartido no está disponible en ese momento. Para evitar esto después de la prueba, use la política de grupo para [establecer Denegar elimina permisos en las carpetas de extensiones y / o caché sin conexión el recurso compartido ( FxExts )].

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.autoDisableScopesse 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.


Filtrado de políticas (aplique selectivamente la configuración en el archivo de bloqueo):

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*enabledaproximadamente: 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

revs vWil
fuente
6

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 .

Tim Dearborn
fuente
Gran respuesta de seguimiento. Nuestro distrito está buscando deshacerse de Firefox por estas dificultades de configuración exactas. Con Google comenzando a ofrecer sus propios GPO , es probable que Chrome se convierta en la alternativa de IE en todas las máquinas.
jscott
1
Firefox, de hecho, honra "xpinstall.enabled" a partir de Firefox 31.
Justin Skiles