调试 AppArmor 语法错误的最佳方法是什么?

调试 AppArmor 语法错误的最佳方法是什么?

最近我将 Debian 从 Stretch (v9x) 升级到 Buster (v10.2)。

现在在雷鸟(软件包 v68.3.0)当我单击电子邮件中的链接时,我的浏览器(FireFox,v71.0,已下载,即未打包)不会打开单击的超链接。


我正在寻求有关如何正确修复 AppArmor 配置文件以合理地与此较新的 FireFox 配合使用的建议。

换句话说,如果我说$ aa-complain /usr/lib/thunderbird/thunderbird这会使电子邮件链接再次工作,并且 FireFox 现在可以正常打开。**(现在此解决方法也已在 2021/05 失效)。但它在 AppArmor 中留下了一个安全漏洞,如果可以的话,我想修复这个漏洞。

(我意识到,如果我安装了 FireFox 的软件包版本,而不是从 FireFox 下载的最新版本,我可能不会遇到此问题。但我有时想要更新的软件,因为我认为最最近的版本更有可能在错误及其自身的安全漏洞方面得到更全面的修补。)


这是我学到和尝试过的。

  1. Thunderbird 有 3 个入口点:

    /usr/bin/thunderbird(较小的可执行文件)

    /usr/lib/thunderbird/thunderbird (以下链接) /usr/lib/thunderbird/thunderbird-bin (大型可执行文件)

我的 Cinnamon 菜单打开 /usr/bin/thunderbird 中的菜单,但这似乎调用 /usr/lib/thunderbird/thunderbird-bin。

  1. 但 Thunderbird 只有一个 AppArmor 配置文件:

    /etc/apparmor.d/usr.bin.thunderbird

其中包含此行#include <abstractions/ubuntu-browsers>,或者换句话说,包括此配置文件:

/etc/apparmor.d/abstractions/ubuntu-browsers

其中有这两行与火狐浏览器:

/usr/bin/firefox Cxr -> sanitized_helper,
/usr/lib{,64}/firefox*/firefox* Cx -> sanitized_helper,
  1. 但我还没有 Firefox AppArmor 配置文件。

因此,为了忽略丢失的 FireFox 配置文件,我尝试将最后两行更改为:

/opt/firefox/firefox ux,

或这个:

/opt/firefox/firefox Uxr -> sanitized_helper,

但 AppArmor 仍然不满意,因为我看到了这个错误:

$ aa-complain /usr/bin/firefox
Setting /usr/bin/thunderbird to complain mode.

ERROR: /etc/apparmor.d/usr.bin.thunderbird doesn't contain a valid profile for /usr/bin/thunderbird (syntax error?)

我的问题:

如何开始查找并修复此 AppArmor 语法错误的最佳方法(如果是这样的话)在我的个人资料中?

我尝试注释掉(删除)ubuntu 浏览器的部分,但这似乎没有帮助。

我也尝试运行$ /etc/init.d/apparmor restart成功,但上述错误仍然没有消失。

我也尝试过运行,apparmor_parser --replace -d usr.bin.thunderbird但我迷失在输出中。

答案1

没有语法错误。您抱怨可执行文件错误。你应该抱怨/usr/lib/thunderbird/thunderbird而不是/usr/bin/thunderbird

sudo aa-complain /usr/lib/thunderbird/thunderbird

相关内容