AppArmor 导致 Firefox 出现段错误

AppArmor 导致 Firefox 出现段错误

我意识到这可能是一个糟糕的问题,但我被困住了。经过大量谷歌搜索后,我正在努力解决这个问题。我一直在尝试让 AppArmor 在 Debian 上运行。我一直按照以下指示进行操作https://wiki.debian.org/AppArmor/HowToUse

部分指令告诉我要做的

sudo perl -pi -e 's,GRUB_CMDLINE_LINUX="(.*)"$,GRUB_CMDLINE_LINUX="$1 apparmor=1 security=apparmor",' /etc/default/grub
sudo update-grub
sudo reboot

因为我不明白perl我在虚拟机中执行此操作的命令,现在我无法使用 Firefox,甚至在安全模式下也无法使用。我遇到段错误。

Fontconfig error: Cannot load default config file

(firefox:3875): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='common'
Crash Annotation GraphicsCriticalError: |[0][GFX1]: no fonts - init: 1 fonts: 0 loader: 0 (t=0.206719) [GFX1]: no fonts - init: 1 fonts: 0 loader: 0
[3875] ###!!! ABORT: unable to find a usable font (Sans): file /tmp/buildd/firefox-47.0.1/gfx/thebes/gfxTextRun.cpp, line 1875
[3875] ###!!! ABORT: unable to find a usable font (Sans): file /tmp/buildd/firefox-47.0.1/gfx/thebes/gfxTextRun.cpp, line 1875
Segmentation fault

apt-cache policy apparmor

apparmor:
  Installed: 2.9.0-3
  Candidate: 2.9.0-3
  Version table:
     2.10.95-4~bpo8+2 0
        100 http://ftp.uk.debian.org/debian/ jessie-backports/main amd64 Packages
 *** 2.9.0-3 0
        500 http://ftp.uk.debian.org/debian/ jessie/main amd64 Packages
        500 http://mirror.bytemark.co.uk/debian/ jessie/main amd64 Packages
        100 /var/lib/dpkg/status

/etc/fonts/fonts.conf 上的 ls -l 返回以下内容:

-rw-r--r-- 1 root root 5533 Nov 23 2014 /etc/fonts/fonts.conf

我尝试使用命令导出字体配置路径

export FONTCONFIG_PATH=/etc/fonts

但这没有帮助。

我知道这是在寻找一种不存在的字体,因为我检查了路径,但现在我陷入了僵局,没有想法,无法从谷歌找到更多帮助。

答案1

我已经设法解决了这个问题。我这样做的方法是编辑 /etc/default/grub 并将 GRUB_CMDLINE_LINUX 从

GRUB_CMDLINE_LINUX=" apparmor=1 security=apparmor"

GRUB_CMDLINE_LINUX=""

然后运行后问题就解决了sudo update grubsudo reboot然而,这阻止了 apparmor 的工作,因为它给出了错误:

apparmor.common.AppArmorException: 'Warning: unable to find a suitable fs in /proc/mounts, is it mounted?\nUse --subdomainfs to override.\n'

不过,我再次使用 debian 指南中的命令成功解决了这个问题。

sudo perl -pi -e 's,GRUB_CMDLINE_LINUX="(.*)"$,GRUB_CMDLINE_LINUX="$1 apparmor=1 security=apparmor",' /etc/default/grub
sudo update-grub
sudo reboot

重新启动后,我尝试启动 Firefox,没有收到任何错误,现在一切正常。然而,在我的电脑上尝试后,我又开始遇到段错误问题,并且此修复不起作用。但在比较了apparmor配置文件之后/etc/apparmor.d我发现配置文件规则是不同的。

电脑段错误规则:

# Last Modified: Tue Aug  2 11:32:25 2016
#include <tunables/global>

/usr/lib/firefox/firefox {
  #include <abstractions/base>

  /usr/bin/firefox r,

}

工作电脑规则:

# Last Modified: Tue Aug  2 11:32:25 2016
#include <tunables/global>

/usr/bin/firefox {
  #include <abstractions/base>
  #include <abstractions/bash>

  /bin/dash ix,
  /usr/bin/firefox r,

}

我将#include <abstractions/bash>和添加/bin/dash ix,到配置文件中,然后将路径更改为/usr/bin/firefox,现在问题在重新启动后得到解决。

相关内容