Existe-t-il un moyen de désactiver l'installation d'extensions Firefox par des utilisateurs non administrateurs?
Sorte de. Vous pouvez appliquer des paramètres de verrouillage avec mozilla.cfg. Cependant, cela empêchera tous les utilisateurs d'utiliser des fonctionnalités verrouillées. Les administrateurs peuvent bien entendu échanger à volonté le fichier de configuration.
Voici la liste des paramètres que nous déployons via le verrouillage. C'est un environnement K-12, donc vos besoins varieront probablement.
//
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);
Consultez également les paramètres de configuration verrouillés sur les documents officiels de Mozilla.org.
Ceci est une variation, compilée à partir des détails utiles @ 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
Les doubles barres obliques (//) en dehors du code indiquent des commentaires.
lockPref()
spécifie une politique c'est-à-dire obligatoire - les utilisateurs ne peuvent pas modifier, tandis que
defaultPref()
ou pref()
spécifie une préférence c'est-à-dire non obligatoire - les utilisateurs peuvent modifier la valeur initialement définie.
Réglage xpinstall.enabled
de faux désactive toutes les installations à ( en cours d' exécution) Firefox, à savoir les installations de sites, Outils> Modules complémentaires> [Get Add-ons | Barre de recherche | icône d'engrenage], Fichier> Ouvrir un fichier et faites glisser-déposer. Les formats d'installation sont .xpi et .jar.
Réglage extensions.enabledScopes
de 0 désactive tous (sauf l' utilisateur (profil) dossier (Scope 1) , et dossier admin ) hors - ligne / découverte manuelle (une fois à chaque démarrage de Firefox) endroits.
L'emplacement hybride (utilisateur) de portée 1 (dossier «extensions» du profil utilisateur) est le seul magasin de la première méthode d'installation et est obsolète en définissant xpinstall.enabled sur false, mais il n'est pas étendu (extensions.enabledScopes) comme emplacement découvert (deuxième méthode d'installation). Le deuxième bloc de code ci-dessus génère une erreur chaque fois que cet emplacement apparaît et Firefox se ferme.
about: config , about: config Entries , extension des descriptions de configuration , installation d'extensions , emplacements spéciaux
Pour activer les extensions approuvées via Firefox répertoire_installation \ navigateur \ extensions , définissez extensions.enabledScopes
sur 4 et ajoutezlockPref("extensions.autoDisableScopes", 11);
Alternativement (sous Windows), pour activer les extensions approuvées via le registre Windows HKLM , définissez extensions.enabledScopes
sur 8 et extensions.autoDisableScopes
sur 7 . L'équivalent dans GNU / Linux est / usr / share / mozilla / extensions / {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
Pour activer les deux emplacements, utilisez respectivement 12 et 3 .
Il est également possible de lockPref()
ou defaultPref()
les paramètres de ces extensions qui intègrent leur configuration dans about: config; habituellement les clés particulières dans about: config incluraient le nom d'extension ou une partie du nom ou em: id .
Téléchargez et décompressez FoxyProxy dans un sous-dossier de niveau supérieur dans un partage réseau (par exemple, un partage réseau FxExts et un sous-dossier foxyproxy ). Ensuite, renommez le sous-dossier foxyproxy avec la valeur entre les balises em: id dans le fichier install.rdf décompressé - foxyproxy est renommé [email protected] .
Ensuite, dans un fichier texte, entrez le chemin d'accès dans la première ligne, c'est-à-dire \\ server \ FxExts \ [email protected] , et renommez également le fichier texte (y compris l'extension .txt) avec la valeur em: id - Nouveau Texte Document.txt est renommé [email protected] .
Ces fichiers texte peuvent être distribués dans le répertoire d' installation Firefox actuel \ browser \ extensions , ou inclus dans le noyau du programme d' installation Firefox \ browser \ extensions .
Alternativement ou en plus via le registre HKLM: nom [email protected] et Data \\ server \ FxExts \ [email protected]
Dans l'un ou l'autre des cas (Scopes 4 et 8):
Pour désactiver une extension, renommez install.rdf de l'extension cible en, par exemple disabled.rdf.
Pour mettre à jour une extension, supprimez le contenu de son sous-dossier et décompressez le nouveau XPI. Habituellement, l'unique em: id serait le même.
Si extensions.autoDisableScopes
est défini sur 15 , les utilisateurs pourraient rechercher et activer les extensions préférées via Outils (Alt + T)> Modules complémentaires: barre de recherche. Alternativement, activez un emplacement pour les extensions activées automatiquement, ce qui laisserait l'autre pour les extensions activées par l'utilisateur (manuellement).
Sous Windows, refusez l' autorisation de lecture des données sur local-settings.js pour que les utilisateurs / groupes soient exemptés. Dans les systèmes GNU / Linux, une option serait de définir les autorisations de base de local-settings.js sur 0600 (avec root étant l'ug), d'ajouter tous les utilisateurs à un groupe (par exemple fxgrp) en laissant de côté les utilisateurs à exempter, puissetfacl -m g:fxgrp:r local-settings.js
Veuillez noter que l'utilisation des variables d'environnement du système d'exploitation n'est pas sûre car elle peut être contournée, à moins que des mesures supplémentaires en dehors du fichier de verrouillage (stratégie) ne soient implémentées.
Divers: La barre de commandes de la console du navigateur peut être désactivée par une règle CSS dans une feuille de style. Par exemple, .jsterm-input-container {display:none;}
pour centraliser cette feuille de style via un fichier de verrouillage (stratégie):
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 (feuille de style) est également chargé en mode sans échec de Firefox et peut spécifier à la fois des règles de chrome (Firefox UI) et de contenu ( pages internes, pages Web). Pour les montages NFS, SMB ou système de fichiers local, utilisezfile:///
[ userChrome et userContent ] .css ont la priorité la plus élevée, il serait donc bon de vérifier également le dossier chrome , par exemplevar profChrmDir = FileUtils.getDir("UChrm", false, false); if( profExtDir.exists() || profChrmDir.exists() )
Chrome noms d'éléments et ID , URL Chrome , travail avec des URL chrome
Les autres outils et le GCLI peuvent être désactivés selon les besoins via le fichier de verrouillage (politique) - filtrez dans devtools*enabled
à propos de: config.
Pour les détails sur les nsInterfaces dans Components.interfaces. *, Veuillez consulter les interfaces XPCOM .
PS: Pour intercepter de manière fiable les erreurs et les conditions dans le fichier .cfg de certaines éditions de Firefox, il peut être nécessaire de placer tout le contenu du verrou (stratégie) dans un bloc try, par exemple, try { var ...; lockPref(); } catch(e) { Components.utils.import("resource://gre/modules/Services.jsm"); Services.startup.quit(0x03); }
inclure également en option Services.prompt.alert(null, "Firefox", "Failed to start. Please inform the IT dept.");
dans le bloc catch (e) {}.
XPConnect , XPCOM interfaces , JSCM , omni.ja , référence JS , JS rapide , JS
Empêcher les utilisateurs d'installer des modules complémentaires est plus difficile dans les versions ultérieures de Firefox. Firefox n'honore pas la préférence xpinstall.enabled dans certaines versions. (Edit: voir commentaire ci-dessous: ils honorent cette préférence à partir de la version 31)
Pour une description détaillée de la façon de modifier Firefox pour empêcher le gestionnaire de modules complémentaires de s'afficher et comment empêcher les utilisateurs d'installer des modules complémentaires, consultez cet article .
Les instructions ne sont pas pour les faibles de cœur, mais elles fonctionnent; J'ai 700 machines enfermées dans un environnement K-8 en utilisant ces directions.
Pour plus d'informations sur le verrouillage des paramètres du navigateur, consultez cet article .