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

loo*_*tro 5 telepathy apparmor 14.04

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

  • nginx 服务器、rabbitmq 服务器、mysql 服务器
  • php-fpm, hhvm
  • 崇高文本,mysql 工作台
  • hplib(用于打印机/扫描仪)
  • 作曲家,凉亭,nodejs,npm
  • 视频播放器
  • steam(还没有安装游戏)

没有什么特别花哨的。我还安装了等离子桌面(以试用它的小部件),但几个小时后我卸载了它,--purge然后apt-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
Run Code Online (Sandbox Code Playgroud)

请注意,该name部件看起来完全是垃圾。

我在谷歌上搜索了这条错误消息,发现了一些错误报告:

他们说这是 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
Run Code Online (Sandbox Code Playgroud)

好吧,似乎很多东西都取决于它。看起来我不能简单地卸载它,因为它可能会破坏某些东西。

有没有办法来解决这个问题?如何?

注意:第一条错误消息(英文)是在登录前出现的(除非关闭——它在登录后仍然存在)。第二个错误消息(波兰语)是完全相同的错误,但它在登录并以正确的语言出现后出现。

似乎“登录前”系统不知道我使用哪种语言,因此默认为英语。

错误截图

Jan*_*Jan 7

首先介绍一下什么是任务控制:

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.
Run Code Online (Sandbox Code Playgroud)

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

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

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

如果您想深入挖掘并修复 aa 配置文件,请阅读http://wiki.apparmor.net/index.php/QuickProfileLanguage并相应地更改任务控制配置文件。