Published on

Setup Chrome ExtensionInstallAllowlist Policies Under Linux

Authors
  • avatar
    Name
    ttyS3
    Twitter

主要是想从 crx 文件安装一个扩展

因为一些原因, 这个扩展可能在 Chrome Web Store 上架的并不是最新版本, 所以只能从 crx 文件安装最新的版本.

但是当前 Chrome 版本已经不再允许直接从 crx 文件安装扩展了 (这里只讨论正常的安装, 不考虑打开开发者模式从文件load的情况).

不过 Chrome 官方也并没有封死路, 只是需要在策略里面添加一个白名单, 才能允许从 crx 文件安装扩展.

wiki里面只介绍了 Windows 下载改注册表的方法.

Windows 下的方法

# Chrome
reg add HKLM\SOFTWARE\Policies\Google\Chrome\ExtensionInstallAllowlist /v 99999 /t reg_sz /d dmmjlmbkigbgpnjfiimhlnbnmppjhpea /f

# Edge
reg add HKLM\SOFTWARE\Policies\Microsoft\Edge\ExtensionInstallAllowlist /v 99999 /t reg_sz /d dmmjlmbkigbgpnjfiimhlnbnmppjhpea /f 

或将以下内容保存为 addWhitelist.reg 文件,然后双击导入注册表:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionInstallAllowlist]
"99999"="dmmjlmbkigbgpnjfiimhlnbnmppjhpea"
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\ExtensionInstallAllowlist]
"99999"="dmmjlmbkigbgpnjfiimhlnbnmppjhpea"

Linux 下的方法

ExtensionInstallAllowlist 为关键字, 找到了一个文档: https://chromeenterprise.google/policies/#ExtensionInstallAllowlist

不过这个文档也比较抽象. 这个配置文件完整的结构是什么样的呢? 也没有个 demo. 不过最终老灯还是研究出来了方法. 记录如下.

# 如果 /etc/opt/chrome/policies/managed 不存在, 则自己创建一下
sudo mkdir -p /etc/opt/chrome/policies/managed

# edge linux stable is:
sudo mkdir -p /etc/opt/edge/policies/managed

然后在 /etc/opt/chrome/policies/managed 下创建一个 extension_install_allowlist.json 文件 (文件名称随意), 内容如下:

{
  "ExtensionInstallAllowlist": [
    "dmmjlmbkigbgpnjfiimhlnbnmppjhpea"
  ]
}

这个规则, Chrome 是动态加载的. 也就是说, 你可以随时修改这个文件, 就会即时生效.

要查看生效的策略, 可以访问: chrome://policy/ , 如果看到 ExtensionInstallAllowlist 策略, 并且状态是 OK, 则说明策略配置正确且生效了.

for edge, access edge://policy/

chrome-ext-install-allow-list-2022-12-22_23-40.png

dmmjlmbkigbgpnjfiimhlnbnmppjhpea 是 Chrome 扩展的 ID, 关于怎么获取这个 ID, 官方有文档

但是其实这个东西很简单都不用说了, 就是 Chrome store 后面那一串字符串.

Refs

Set Chrome app and extension policies (Linux) https://support.google.com/chrome/a/answer/7517525?hl=en

ExtensionInstallAllowlist Configure extension installation allow list https://chromeenterprise.google/policies/#ExtensionInstallAllowlist