所有最常用的 Linux 发行版都默认安装了火狐 (firefox) 浏览器 (或至少在官方软件库中可用),包括国产的 UOS、麒麟等系统。为了使用起来更有个性化, 我们可以创建和部署 "策略"。在本教程中,我们将学习如何通过 policy.json 文件配置系统级策略来定制 Firefox 并轻松定置个人特性。
目录 | 说明 |
系统 | 任意 |
软件 | firefox(火狐) |
其它 | 管理员权限 |
说明 | - 要求给定的 linux-commands 以 root 权限执行,可以直接作为 root 用户或使用 sudo 命令 $ - 要求给定的 linux-commands 以普通非特权用户执行 |
一、策略介绍
通过在设置页面导航或使用更高级的 "about:config "菜单 (通过访问 "隐藏 "选项) 来交互式地配置火狐,可能是一项耗时的任务,特别是当我们需要在多个电脑复制设置时。在这种情况下,自动化是至关重要的,最实用的解决方案是建立和部署策略。
火狐浏览器的策略是通过使用 JSON(JavaScript Object Notation) 语法实现的,在 policy.json 文件中,可以在两个地方创建。
1. 在 Firefox 安装根目录下的 "distribution "目录中;2. 在"/etc/firefox/policies "目录内
Firefox 的安装路径因安装方式和我们使用的发行版而不同。例如,在 Fedora 上,当通过 dnf 软件包管理器安装时,Firefox 被安装在/usr/lib64/firefox 下。在下面的表格中,列出了常见的 linux 发行版 firefox 的安装路径。
发行版 | Firefox 安装路径 |
Fedora | /usr/lib64/firefox |
Debian (amd64) | /usr/lib/firefox-esr |
Ubuntu | /snap/firefox/current/usr/lib/firefox |
Archlinux | /usr/lib/firefox/distribution |
UOS | /opt/apps/org.mozilla.firefox/ |
请注意,在最近的 Ubuntu 版本中,Firefox 是作为一个 snap 包默认安装的,这就是为什么它的路径与其他的完全不同的原因,UOS 系统因为国产化, 路径更是与众不同。
为了避免不同发行版之间的差异,推荐的解决方案是将我们的 "policy.json "文件写在/etc/firefox/policies 目录下。这是在本教程中使用的方法,我们必须确保该目录存在,没有就创建一个。
$ sudo mkdir -p /etc/firefox/policies
二、创建一个策略
一个策略由一系列的选项和相应的值组成。通过策略,我们几乎可以管理 Firefox 的每一个方面:除此之外,我们还可以设置扩展程序、书签和更新,以及浏览器界面的各个方面。
可以在 github 上的 mozilla 策略模板页面找到指定的键的完整列表及其文档,这里我们只看到一些例子。
在 policy.json 文件中指定的所有设置,必须在主 "policies "部分以键/值对的形式指定。
{
"policies":{
}
}
添加书签作为政策的一部分
为了指定书签作为 Firefox 策略的一部分,我们必须使用书签键。这个键接受一个对象数组作为值。每个对象代表一个书签,并使用一组键来定义,正如你在下面的例子中看到的那样。
{
"policies":{
"Bookmarks":[
{
"Title":"Linuxconfig.org",
"URL":"https://linuxconfig.org",
"Favicon":"https://linuxconfig.org/favicon.ico",
"Placement":"toolbar",
"Folder":"Linux"
}
]
}
}
在上面的例子中,我们为 "Linuxconfig.org "定义了一个书签,包括一个标题、一个 Url 和一个 Favicon。我们还通过使用 Placement 键指定了书签的放置位置 ("工具栏 "与 "菜单")。最后,我们确定书签应该包含在一个名为 "Linux "的文件夹中。
要看到应用结果,我们只需关闭浏览器的当前实例,然后启动一个新的实例。在下面的截图中,你可以看到 "Linux "文件夹中的 "Linuxconfig "书签的创建结果。
![The bookmark included as part of the policy](https://www.music4x.com/wp-content/uploads//2023/03/1678419749-30310114137.jpg)
禁用火狐浏览器遥测功能
默认情况下,Firefox 被配置为向 Mozilla 发送技术和数据交互信息。这个 "功能 "被称为遥测,大多数时候你都想禁用它。为了禁用遥测作为我们策略的一部分,我们需要使用 DisableTelemetry 键,它接受 true 或 false 作为值。
{
"policies":{
"DisableTelemetry":true
}
}
指定扩展作为策略的一部分
我们可以指定一组可以被安装、移除或锁定的扩展程序,作为我们的 Firefox 策略的一部分。为了完成这项任务,我们使用扩展程序键。在下面的例子中,我们指定要安装 "NoScript "扩展作为我们策略的一部分,并且我们要锁定它,所以它不能被用户删除。
{
"policies":{
"Extensions":{
"Install":[
"https://addons.mozilla.org/firefox/downloads/file/4067473/noscript-11.4.16.xpi"
],
"Locked":[
"{73a6fe31-595d-460b-a920-fcc0f8843232}"
]
}
}
}
为了指定应该安装的扩展,我们包括了它们的 URL,这些 URL 可以在 Firefox addons 网站上找到。而要锁定或卸载的扩展,则是通过它们的 ID 来引用的。检索扩展程序 ID 的一个简单方法是在浏览器的 about:debugging 页面上导航,并点击侧边栏菜单中的 "This Firefox "条目。在这种情况下,我们可以看到 NoScript 扩展的 ID 是"{73a6fe31-595d-460b-a920-fcc0f8843232}"。
![在about:debugging页面可以很容易找到扩展的ID。](https://www.music4x.com/wp-content/uploads//2023/03/1678420084-735.jpg)
由于我们将该扩展锁定为我们政策的一部分,所以终端用户不允许删除它。正如你在下面的截图中看到的,"删除扩展 "条目是灰色的。
![](https://www.music4x.com/wp-content/uploads//2023/03/1678420148-14846.jpg)
三、结论
在本教程中,我们看到了一些定义 Firefox 系统级策略的例子。策略对于自动化和在多台机器上复制预定义的设置非常有用。在这篇文章中,我们看到了如何禁用遥测,并将书签和扩展程序作为策略的一部分。
翻译自:https://linuxconfig.org/how-to-customize-firefox-using-the-policies-json-file