jsc*_*ott 14
有点。您可以使用 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);
Run Code Online (Sandbox Code Playgroud)
另请参阅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
Run Code Online (Sandbox Code Playgroud)
代码外的双斜线 (//) 表示注释。
lockPref()指定一个策略,即强制 - 用户不能修改,而
defaultPref()或pref()指定一个偏好,即非强制 - 用户可以修改初始设置的值。
设置xpinstall.enabled为false将禁用通过(运行)Firefox 进行的所有安装,即从网站安装,工具 > 附加组件 > [获取附加组件 | 搜索栏 | 齿轮图标],文件 > 打开文件,然后拖放。安装程序格式为 .xpi 和 .jar。
设置extensions.enabledScopes为0将禁用所有(用户(配置文件)文件夹(范围 1)和admin 文件夹除外)离线/手动发现(每次 Firefox 启动时一次)位置。
(用户)范围 1 混合位置(用户配置文件“extensions”文件夹)是第一种安装方法的唯一存储,通过将 xpinstall.enabled 设置为 false 已过时,但未将范围(extensions.enabledScopes)确定为已发现位置(第二种安装方法)。每当此位置出现时,上面的第二个代码块都会引发错误,并且 Firefox 会退出。
about:config , about:config Entries , Config Descriptions extension ,安装扩展,特殊位置
要通过 Firefox install_directory\browser\extensions启用已批准的扩展,设置extensions.enabledScopes为4,并添加lockPref("extensions.autoDisableScopes", 11);
或者(在Windows中),让经批准的Windows注册表扩展HKLM,设置extensions.enabledScopes到8,并extensions.autoDisableScopes以7。GNU/Linux 中的等效项是/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
要启用这两个位置,请分别使用12和3。
这也可能lockPref()或defaultPref()那些在约整合其配置扩展的设置:配置; 通常 about:config 中的特定键将包括扩展名或部分名称或em:id。
下载 FoxyProxy 并将其解压缩到网络共享中的顶级子文件夹(例如网络共享FxExts和子文件夹foxyproxy)。接下来,使用解压缩的install.rdf文件中em:id标记之间的值重命名Foxyproxy子文件夹- foxyproxy被重命名为foxyproxy@eric.h.jung。
接下来,在文本文件中输入第一行的路径,即\\server\FxExts\foxyproxy@eric.h.jung,并使用em:id值重命名文本文件(包括 .txt 扩展名)- New文本 Document.txt被重命名为foxyproxy@eric.h.jung。
这些文本文件可以分发到现有的 Firefox install_directory\browser\extensions,或包含在 Firefox 安装程序core\browser\extensions 中。
或者或另外通过注册表 HKLM:名称foxyproxy@eric.h.jung和 Data \\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
请注意,使用操作系统环境变量是不安全的,因为它可以被绕过,除非实施了锁定(策略)文件之外的额外措施。
其他:浏览器控制台的命令栏可以通过样式表中的 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);
Run Code Online (Sandbox Code Playgroud)
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() )
Chrome 元素名称和 ID,Chrome 网址,使用 chrome 网址
其他工具和GCLI可以根据需要通过锁定(策略)文件禁用 - devtools*enabledabout:config 中的过滤器。
有关 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) { } 块中。
XPConnect,XPCOM接口,JSCM,omni.ja,JS参考,快速JS,JS
| 归档时间: |
|
| 查看次数: |
31713 次 |
| 最近记录: |