如何在 Ubuntu 14.04 下修复 telepathy-mission-control-5 的 apparmor="DENIED"?

如何在 Ubuntu 14.04 下修复 telepathy-mission-control-5 的 apparmor="DENIED"?

一周前刚刚安装了 Ubuntu 14.04 LTS 和一些用于工作和娱乐的程序:

  • nginx 服务器、rabbitmq 服务器、mysql 服务器
  • php-fpm,hhvm
  • sublime-text,mysql 工作台
  • hplib(用于打印机/扫描仪)
  • 作曲家,Bower,Nodejs,NPM
  • VLC 播放器
  • steam(尚未安装游戏)

没什么特别的。我还安装了 plasma-desktop(为了试用它的小工具),但几个小时后我用 卸载了--purgeapt-get autoremove

今天,登录时我看到了 3 次错误消息。第一次出现在登录屏幕上输入密码后,但在我的桌面加载之前(它出现在“登录屏幕顶部”)。第二条消息出现在登录屏幕消失后,桌面开始加载。第三条消息出现在桌面加载完成时。

不知道第四次是什么时候发生的。

从那时起已经过去了大约 20 分钟,没有出现进一步的错误消息。

因此,我查了一下/etc/syslog,结果如下:

Jul  2 09:26:48 Earth kernel: [ 1090.959820] type=1400 audit(1404286008.832:76): apparmor="DENIED" operation="open" profile="/usr/lib/telepathy/mission-control-5" name=2F6D656469612F53746F726167652F50726F66696C652F5562756E74752031342E30342F6C6F6F7374726F2F2E636F6E6669672F6C69626163636F756E74732D676C69622F6163636F756E74732E6462 pid=3310 comm="mission-control" requested_mask="rw" denied_mask="rw" fsuid=1000 ouid=1000
Jul  2 09:26:48 Earth kernel: [ 1090.960061] type=1400 audit(1404286008.832:77): apparmor="DENIED" operation="open" profile="/usr/lib/telepathy/mission-control-5" name=2F6D656469612F53746F726167652F50726F66696C652F5562756E74752031342E30342F6C6F6F7374726F2F2E636F6E6669672F6C69626163636F756E74732D676C69622F6163636F756E74732E6462 pid=3310 comm="mission-control" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Jul  2 09:26:48 Earth kernel: [ 1090.967927] type=1400 audit(1404286008.840:78): apparmor="DENIED" operation="open" profile="/usr/lib/telepathy/mission-control-5" name=2F6D656469612F53746F726167652F50726F66696C652F5562756E74752031342E30342F6C6F6F7374726F2F2E636F6E6669672F64636F6E662F75736572 pid=3310 comm="mission-control" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
Jul  2 09:26:48 Earth kernel: [ 1091.034552] type=1400 audit(1404286008.908:79): apparmor="DENIED" operation="open" profile="/usr/lib/telepathy/mission-control-5" name=2F6D656469612F53746F726167652F50726F66696C652F5562756E74752031342E30342F6C6F6F7374726F2F2E6C6F63616C2F73686172652F74656C6570617468792F6D697373696F6E2D636F6E74726F6C2F6163636F756E74732E636667 pid=3310 comm="mission-control" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000

请注意,该name部分看上去完全是垃圾。

我用 Google 搜索了这个错误消息,并发现了一些错误报告:

他们说这是 apparmor 中的一个错误,但不知道如何修复它。

另外,我不记得安装过telepathy-mission-control-5。我查找了反向依赖项:

loostro@Earth:~$apt-cache rdepends telepathy-mission-control-5
telepathy-mission-control-5
Reverse Depends:
  telepathy-gabble:i386
  gnome-shell
  telepathy-gabble
  mcp-account-manager-uoa
  empathy
  telepathy-mission-control-5:i386
  telepathy-gabble:i386
  telephony-service
  ssh-contact-client
  python-sugar3
  python-sugar-toolkit-0.98
  python-sugar-toolkit-0.96
  kde-telepathy-minimal
  gnome-shell
  telepathy-mission-control-5-dbg
  telepathy-gabble
  mcp-account-manager-uoa
  libmission-control-plugins0
  empathy

嗯,似乎很多东西都依赖于它。看来我不能简单地卸载它,因为它可能会破坏某些东西。

有办法解决这个问题吗?怎么解决?

注意:第一个错误消息(英文)是在登录前出现的(除非关闭 - 它会在登录后保留)。第二个错误消息(波兰语)是完全相同的错误,但它是在登录后出现的,并且语言正确。

好像“登录之前”系统不知道我使用哪种语言,所以默认为英语。

错误截图

答案1

首先介绍一下任务控制:

Mission Control 实现了 Telepathy D-Bus 规范,允许像 empathy 这样的客户端存储帐户详细信息、连接帐户、请求通信渠道以及向其调度渠道。

来源

禁用apparmor 的任务控制配置文件,首次使用aa-status。这将列出所有配置文件及其操作模式,输出有点类似于此:

# aa-status
apparmor module is loaded.
6 profiles are loaded.
5 profiles are in enforce mode.
   /bin/ping
   /sbin/klogd
   /sbin/syslog-ng
   /usr/sbin/dnsmasq
   /usr/sbin/identd
1 profiles are in complain mode.
   /usr/sbin/lspci
1 processes have profiles defined.
1 processes are in enforce mode.
   /usr/sbin/dnsmasq (12905)
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

检查输出的配置文件任务控制

如果您将配置文件链接到/etc/apparmor.d/disable,它将不再自动加载,并且错误也会消失。

请注意,这更多的是一种停止消息的解决方法,而不是解决问题的根本原因。

如果你想深入挖掘并修复 AA 配置文件,请阅读https://gitlab.com/apparmor/apparmor/-/wikis/QuickProfileLanguage并相应地改变任务控制配置文件。

相关内容