web-dev-qa-db-ja.com

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コマンドを理解していなかったため、VMでこれを実行しましたが、セーフモードでも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

しかし、これは役に立ちませんでした。

パスを確認したため、これが存在しないフォントを探していることはわかっていますが、現在は行き詰まっていて、アイデアがなく、Googleからのヘルプを見つけることができません。

2
Ben

私はなんとか問題を解決することができました。これを行う方法は、/ etc/default/grubを編集し、GRUB_CMDLINE_LINUXをから変更することでした。

GRUB_CMDLINE_LINUX=" apparmor=1 security=apparmor"

GRUB_CMDLINE_LINUX=""

次に、Sudo update grubおよびSudo 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を起動しようとしましたが、エラーは発生せず、すべて正常に機能しています。しかし、私のPCでそれを試した後、私は再びsegfaultの問題を抱え始め、この修正は機能しませんでした。しかし、/etc/apparmor.dでapparmorプロファイルを比較した後、プロファイルルールが異なることがわかりました。

Segfaulting pcのルール:

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

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

  /usr/bin/firefox r,

}

作業用PCのルール:

# 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に変更したところ、再起動後に問題が修正されました。

0
Ben