Les administrateurs peuvent-ils empêcher les utilisateurs d'installer des extensions Firefox?

13

Existe-t-il un moyen de désactiver l'installation d'extensions Firefox par des utilisateurs non administrateurs?

Victor Rodrigues
la source

Réponses:

12

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.

jscott
la source
6

Ceci est une variation, compilée à partir des détails utiles @ MDN , MozillaZine , PCC-Services , Mike's Musings

Pour bloquer / empêcher les extensions (incluez-les dans le fichier de verrouillage (stratégie) ):

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.enabledde 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.enabledScopesde 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


Extensions approuvées

Pour activer les extensions approuvées via Firefox répertoire_installation \ navigateur \ extensions , définissez extensions.enabledScopessur 4 et ajoutezlockPref("extensions.autoDisableScopes", 11);

Alternativement (sous Windows), pour activer les extensions approuvées via le registre Windows HKLM , définissez extensions.enabledScopessur 8 et extensions.autoDisableScopessur 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 .


Magasin interne, extensions centralisées ( FoxyProxy comme exemple):

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 .

  • À chaque démarrage, Firefox parcourt les fichiers texte et supprime (sous les comptes d'administrateur) tout en cas d'erreur ou si le partage n'est pas disponible à ce moment. Pour éviter cela après les tests, utilisez la stratégie de groupe pour [définir Refuser supprime les autorisations sur les dossiers d' extensions et / ou mettre en cache hors connexion le partage ( FxExts )].

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.autoDisableScopesest 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).


Filtrage des stratégies (appliquer sélectivement les paramètres dans le fichier de verrouillage):

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

trs vWil
la source
6

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 .

Tim Dearborn
la source
Grande réponse de suivi. Notre district cherche à abandonner Firefox pour ces difficultés de configuration exactes. Avec Google commençant à proposer ses propres GPO , Chrome est susceptible de devenir l'alternative IE sur toutes les machines.
jscott
1
Firefox respecte en fait "xpinstall.enabled" à partir de Firefox 31.
Justin Skiles