管理员有办法禁止用户安装Firefox扩展吗?


Answers:


12

有点。您可以使用mozilla.cfg应用锁定设置。但是,这将阻止所有用户使用锁定功能。管理员当然可以随意调入/调出配置文件。

这是我们通过锁定部署的设置列表。这是一个K-12环境,因此您的需求可能会有所不同。

//
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);

另请参阅Mozilla.org官方文档上的锁定配置设置


6

这是根据有用的详细信息@ MDNMozillaZinePCC-ServicesMike'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

代码外的双斜杠(//)表示注释。

lockPref()指定一个政策,即强制-用户无法修改,而 defaultPref()pref()指定一个偏好,即非强制性的-用户可以修改初始设定值。

设置xpinstall.enabledfalse会禁用通过(运行)Firefox进行的所有安装,即从网站,工具>附加组件> [获取附加组件| 搜索栏| 齿轮图标],文件>打开文件,然后拖放。安装程序格式为.xpi和.jar。

设置extensions.enabledScopes0将禁用所有(用户(配置文件)文件夹(范围1)admin文件夹除外)离线/手动发现(每次Firefox启动时一次)位置。

(用户)范围1混合位置(用户配置文件“扩展”文件夹)是第一种安装方法的唯一存储,并且通过将xpinstall.enabled设置为false来废弃,但是没有将范围(extensions.enabledScopes)作为发现的位置(第二种安装方法)。每当出现此位置时,上面的第二个代码块都会引发错误,并且Firefox退出。

about:configabout:config条目Config描述扩展安装扩展特殊位置


批准的扩展

要通过Firefox install_directory \ browser \ extensions启用批准的扩展,将其设置extensions.enabledScopes4并添加lockPref("extensions.autoDisableScopes", 11);

或者(在Windows中),让经批准的Windows注册表扩展HKLM,设置extensions.enabledScopes8,并extensions.autoDisableScopes7。GNU / Linux中的等效项是/ usr / share / mozilla / extensions / {ec8030f7-c20a-464f-9b0e-13a3a9e97384}

要同时启用两个位置,请分别使用123

这也可能lockPref()defaultPref()那些在约整合其配置扩展的设置:配置; 通常about:config中的特定键将包括扩展名或名称的一部分或em:id


内部存储,集中扩展(以FoxyProxy为例):

将FoxyProxy下载并解压缩到网络共享中的顶级子文件夹中(例如,网络共享FxExts和子文件夹foxyproxy)。接下来,使用压缩的install.rdf文件中em:id标签之间的值重命名foxyproxy子文件夹-foxyproxy重命名为foxyproxy@eric.h.jung

接着,在文本文件中的第一行,即输入路径\\服务器\ FxExts \ foxyproxy@eric.h.jung,并重新命名文本文件(包括.txt扩展名)与EM:ID值- 新文本Document.txt被重命名为foxyproxy@eric.h.jung

这些文本文件可以分发到现有的Firefox install_directory \ browser \ extensions,也可以包含在Firefox安装程序的core \ browser \ extensions中

  • 每次启动时,Firefox都会浏览文本文件,并删除(在admin帐户下)任何错误消息或如果共享当时不可用。为了在测试后避免这种情况,请使用组策略来[设置拒绝以删除扩展文件夹的权限,和/或脱机缓存共享(FxExts)]。

另外或通过注册表HKLM:名称为foxyproxy@eric.h.jung和数据\\ server \ FxExts \ foxyproxy@eric.h.jung

在任何一种或两种情况下(范围4和8):

  • 要禁用扩展,请将目标扩展的install.rdf重命名为,例如disabled.rdf。

  • 要更新扩展名,请删除其子文件夹中的内容并解压缩新的XPI。通常,唯一的em:id将是相同的。

如果extensions.autoDisableScopes设置为15,则用户可以通过工具(Alt + T)>附加组件:搜索栏搜索和激活首选扩展。或者,为一个自动激活的扩展名启用一个位置,而为用户(手动)激活的扩展名保留另一个位置。


策略过滤(有选择地应用锁定文件中的设置):

在Windows中,对要豁免的用户/组拒绝local-settings.js上的读取数据权限。在GNU / Linux系统中,一个选项是将local-settings.js的基本权限设置为0600(root为ug),将所有用户添加到一个组(例如fxgrp)中,而忽略要豁免的用户,接着setfacl -m g:fxgrp:r local-settings.js

请注意,使用OS环境变量是不安全的,因为可以绕开它,除非在锁(策略)文件之外实施了其他措施。


杂项:可以通过样式表中的CSS规则禁用浏览器控制台的命令栏,例如,.jsterm-input-container {display:none;}要通过锁(策略)文件集中该样式表,请执行以下操作:

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(样式表)也已在Firefox安全模式下加载,并且可以指定chrome(Firefox用户界面)和内容(内部页面,网页)规则。对于NFS,SMB挂载或本地文件系统,请使用file:///

[ userChromeuserContent ] .css具有最高优先级,因此最好也检查chrome文件夹,例如var profChrmDir = FileUtils.getDir("UChrm", false, false); if( profExtDir.exists() || profChrmDir.exists() )

Chrome元素名称和IDChrome网址使用Chrome网址

可以根据需要通过锁定(策略)文件(关于about:config中的过滤器)禁用其他工具GCLIdevtools*enabled

有关Components.interfaces。*中nsInterfaces的详细信息,请参阅XPCOM接口

PS:要可靠地在某些Firefox版本的.cfg文件中捕获错误和条件,可能有必要将整个锁(策略)内容放入try块中,例如,try { var ...; lockPref(); } catch(e) { Components.utils.import("resource://gre/modules/Services.jsm"); Services.startup.quit(0x03); }还可以选择Services.prompt.alert(null, "Firefox", "Failed to start. Please inform the IT dept.");在catch(e){}块中包括该内容。

XPConnectXPCOM接口JSCMomn​​i.jaJS参考快速JSJS


6

在更高版本的Firefox中,阻止用户安装插件更加困难。Firefox在某些版本中不支持xpinstall.enabled首选项。(编辑:请参阅下面的评论:从版本31开始,他们确实尊重此首选项)

有关如何修改Firefox以防止显示附加组件管理器以及如何防止用户安装附加组件的详细文章,请参阅本文

这些指示不是为了胆小,而是起作用。我按照这些指示将700台计算机锁定在K-8环境中。

有关锁定浏览器设置的更多信息,请参阅本文


很好的跟进答案。我们区正在寻求放弃Firefox来解决这些确切的配置难题。随着Google开始提供自己的GPO,Chrome很可能成为所有计算机上的IE替代产品。
jscott 2012年

1
从Firefox 31开始,Firefox实际上确实支持“ xpinstall.enabled”。–
Justin Skiles
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.