好的,所以我对一台拥有大量本地用户帐户的机器拥有本地 root 访问权限。这些帐户都具有某个特定扩展的某个版本,该扩展在帐户设置期间安装在其用户帐户下(根据为用户创建帐户的时间,版本各不相同)。我知道这是一种糟糕的管理方式,但这是一个按原样交给我的旧系统。
我正在尝试全局更新扩展。我的配置文件下安装了一个版本,我复制了扩展的正确命名文件夹(友好名称而不是 ID 字符串)并将其移动到下面描述的位置。还有一个与扩展一起提供的 XML 配置文件,我单独弄清楚了如何将其复制到所有用户的 Firefox 配置文件中。
全局插件安装- “如果您想自动为系统中的所有用户安装扩展,您需要提取它,将包含该插件的文件夹重命名为插件的 ID 字符串,然后将其复制到 Firefox 全局扩展文件夹/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/
,您在那里使用的任何内容都会在用户打开 Firefox 时自动调用。”
新用户的结果- 创建了一个新的测试用户,登录后,扩展已存在/正在运行。 XML 已存在,因此所有配置都存在。 一切都很好!
现有用户的结果- 没有错误或任何其他内容,但应用程序的旧版本仍然存在。我没有看到任何关于放置在全局扩展文件夹中的应用程序新版本的提及。XML 在那里,旧版本的插件确实可以看到它 - 所以我很满意。有没有办法让我只能让 Firefox 识别从全局位置安装的插件?我认为因为相同的扩展安装在他们的用户配置文件下,所以它优先。但我可能错了。我是 Ubuntu 管理的新手。
答案1
取决于你有多少用户,你可以这样做
sudo rm -rf /home/*/.mozilla/firefox/profiles/*.default/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}*
如果第一个 glob 有很多匹配项,则此方法将不起作用;如果用户的主目录不在典型位置,此方法也会失败。在这种情况下,您可以迭代每个用户。如果您不厌其烦地迭代每个用户,您还可以通过使用 执行用户清理,从而使命令更安全sudo
。例如
cat list_of_users| xargs -I% sudo -Hu % sh -c 'rm -rf ~/.mozilla/firefox/profiles/*.default/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}*'
或者,您可以将一些逻辑集成到全局配置文件中,我建议在主目录中测试清单,看看它是否比全局旧,然后删除扩展。