有没有办法禁止非pipe理员用户安装Firefox扩展?
有点。 您可以使用mozilla.cfg来应用locking设置。 但是,这将阻止所有用户使用lockingfunction。 当然,pipe理员可以随意input/输出configuration文件。
http://www.pcc-services.com/kixtart/firefox-lockdown.html
编辑:这是我们通过locking部署的设置列表。 这是一个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);
编辑:
我正在添加一个关于lockingconfiguration设置的官方Mozilla.org文档的链接。
如果我提供的信息不能很好地回答您的问题,请提供描述您需求的其他信息。
这是一个变种,从有用的细节@ 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
双斜杠(//)外部代码表示注释。
lockPref()指定一个策略,即强制 – 用户不能修改,而defaultPref()或pref()指定一个首选项,即非强制性的 – 用户可以修改初始设置的值。
将xpinstall.enabled设置为false将禁用通过(运行)Firefox进行的所有安装,即从网站安装,工具>附加组件> [获取附件| search栏| 齿轮图标],文件>打开文件,拖放。 安装程序格式是.xpi和.jar。
将extensions.enabledScopes设置为0将禁用所有( 用户(configuration文件)文件夹(范围1)和admin文件夹除外)脱机/手动发现(每个Firefox启动一次)的位置。
(用户)范围1混合位置(用户configuration文件“扩展”文件夹)是第一个安装方法的唯一存储,并且已通过将xpinstall.enabled设置为false而被废弃,但未将作用域(extensions.enabledScopes)限定为已发现位置(第二种安装方法)。 上面的第二个代码块在出现此位置时会引发错误,Firefox将退出。
about:config , about:config条目 , configuration描述扩展名 , 安装扩展 , 特殊位置
要通过Firefox install_directory \ browser \ extensions启用批准的扩展,请将extensions.enabledScopes设置为4 ,并添加lockPref("extensions.autoDisableScopes", 11);
或者(在Windows中),通过WindowsregistryHKLM启用批准的扩展,将extensions.enabledScopes设置为8 ,并将extensions.autoDisableScopes为7 。 GNU / Linux中的等价物是/ usr / share / mozilla / extensions / {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
要启用这两个位置,请分别使用12和3 。
lockPref()或defaultPref()也可以将其configuration集成在about:config中的那些扩展的设置lockPref() 。 通常about:config中的特定键将包含扩展名或部分名称或em:id 。
将FoxyProxy下载并解压缩到networking共享中的顶级子文件夹中(例如networking共享FxExts和子文件夹foxyproxy )。 接下来,使用解压缩的install.rdf文件中的em:id标记之间的值重命名foxyproxy子文件夹 – 将foxyproxy重命名为[email protected] 。
接下来,在文本文件中input第一行的path,即\\ server \ FxExts \ [email protected] ,并用em:id值重新命名文本文件(包括.txt扩展名) – New文本Document.txt被重命名为[email protected] 。
这些文本文件可以分发到现有的Firefox install_directory \ browser \ extensions ,或Firefox安装程序core \ browser \ extensions中 。
另外或通过registryHKLM:名称[email protected]和Data \\ server \ FxExts \ [email protected]
无论在哪种情况下(范围4和8):
要禁用扩展,请将目标扩展的install.rdf重命名为例如disabled.rdf。
要更新扩展名,请删除其子文件夹中的内容并解压缩新的XPI。 通常独特的em:id将是相同的。
如果extensions.autoDisableScopes设置为15 ,用户将能够通过工具(Alt + T)>附件:search栏search并激活首选扩展。 或者,为自动激活的分机启用一个位置,这将使用户(手动)激活的分机离开另一位置。
在Windows中, 拒绝用户/组的local-settings.js的读取数据权限将被豁免。 在GNU / Linux系统中,一个选项是将local-settings.js的基本权限设置为0600(以root为ug),将所有用户添加到一个组(例如fxgrp),而不需要免除用户,然后setfacl -mg:fxgrp:r local-settings.js
请注意,使用操作系统环境variables是不安全的,因为它可以被绕过,除非执行锁(策略)文件之外的额外措施。
其他: 浏览器控制台的命令栏可以通过样式表中的CSS规则禁用,例如.jsterm-input-container {display:none;}通过locking(策略)文件来集中这个样式表:
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 UI)和内容( 内部页面 ,网页)规则。 对于NFS,SMB挂载或本地文件系统,请使用file:///
[ userChrome和userContent ] .css具有最高的优先级,因此也可以检查chrome文件夹,例如var profChrmDir = FileUtils.getDir("UChrm", false, false); if( profExtDir.exists() || profChrmDir.exists() ) var profChrmDir = FileUtils.getDir("UChrm", false, false); if( profExtDir.exists() || profChrmDir.exists() )
Chrome元素名称和ID , Chromeurl , 使用Chromeurl
其他工具和GCLI可以根据需要通过lock(policy)文件禁用 – 在about:config中devtools*enabledfilter。
有关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); } try { var ...; lockPref(); } catch(e) { Components.utils.import("resource://gre/modules/Services.jsm"); Services.startup.quit(0x03); } 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){}块中。
XPConnect , XPCOM接口 , JSCM , omni.ja , JS参考 , 快速JS , JS
Firefox的更高版本中阻止用户安装插件更为困难。 Firefox在某些版本中不遵守xpinstall.enabled首选项。 (编辑:请参阅下面的评论:他们确实符合版本31的这个偏好)
有关如何修改Firefox以防止显示附加组件以及如何防止用户安装附加组件的详细信息,请参阅本文 。
这些指示并不是因为内心的微弱,而是在工作。 我有700台机器使用这些方向locking在K-8环境中。
有关locking浏览器设置的更多信息,请参阅本文 。