更新后,Thunderbird 无法在 Linux 下打开附件

更新后,Thunderbird 无法在 Linux 下打开附件

我使用 Debian 不稳定版。更新系统后,Thunderbird 突然无法再打开附件 - 什么都没发生,但文件存储在 中/tmp/mozilla...。通常,evince(或firefox-bin,又名 Firefox quantum)会在我的计算机上正常打开。

通过命令行打开 Thunderbird 时,打印了以下错误消息:

(thunderbird:25364): Gtk-WARNING **: Attempting to read the recently used resources file at '/home/jenserat/.local/share/recently-used.xbel', but the parser failed: Datei »/home/jenserat/.local/share/recently-used.xbel« konnte nicht geöffnet werden: Keine Berechtigung.

(thunderbird:25364): GVFS-WARNING **: can't init metadata tree /home/jenserat/.local/share/gvfs-metadata/root: open: Keine Berechtigung

(thunderbird:25364): GVFS-WARNING **: can't init metadata tree /home/jenserat/.local/share/gvfs-metadata/root: open: Keine Berechtigung

(thunderbird:25364): Gtk-WARNING **: Attempting to read the recently used resources file at '/home/jenserat/.local/share/recently-used.xbel', but the parser failed: Datei »/home/jenserat/.local/share/recently-used.xbel« konnte nicht geöffnet werden: Keine Berechtigung.

(“Keine Berechtigung” 在德语中意为“拒绝许可”)

答案1

此问题是由最近支持 App Armor 的 Debian 内核和系统附带的 App Armor 规则过于严格并拒绝evince访问最近使用的文件(使用 打开附件时会更新evince)引起的。此问题还在Debian 错误报告 #882782并且也可能影响其他Linux发行版。

解决方案是安装 App Armor 工具包(sudo apt install apparmor-utils然后使用 调整 App Armor 配置文件sudo aa-logprof)。该工具将显示以下观察结果(可能会打印更多结果,这些结果将表明其他问题,在我的情况下是第一个):

$ sudo aa-logprof
Reading log entries from /var/log/audit/audit.log.
Updating AppArmor profiles in /etc/apparmor.d.

Profile:  thunderbird
Execute:  /usr/bin/evince
Severity: unknown

(I)nherit / (C)hild / (P)rofile / (N)amed / (U)nconfined / (X) ix On / (D)eny / Abo(r)t / (F)inish

输出意味着当thunderbird配置文件处于活动状态时,/usr/bin/evince即将执行但失败了。

您现在可以决定是否:

  • ) 继承 Thunderbird 的配置文件(这意味着 Thunderbird 的限制也将适用于evince,这将无法正确匹配),或

  • C)hild 将应用的evince配置文件(如果可用)<-这就是我们所寻找的。

    ...

  • 最后,选择(F)finish 完成编辑。

如果您使用其他工具读取日志,提示可能会略有不同。

未来的 Thunderbird 更新应该会带来更好的 App Armor 配置文件,但这只是目前的一个合适的解决方法(并且在安装更好的配置文件后不会在未来造成危害)。


值得注意的是,手册页aa-logprof仅提到此菜单:

(A)允许,(D)拒绝,(I)忽略,(N)新,(G)最后一块,(Q)退出

但它似乎不适用于这种情况。也许手册页会在某个时候更新,以更好地解释这一点。

答案2

对于 Ubuntu,原因可能是您打开了 Thunderbird 或其他应用程序的 snapd 版本附件。

在这种情况下,根据线:

/tmp 不再是“全球通用的可访问位置”

作为解决方案,您必须覆盖 TMPThunderbird 进程的环境变量。例如,创建一个名为的文件~/bin/thunderbird

#!/usr/bin/env bash
TMP=$HOME/Downloads /usr/bin/thunderbird "$@"

使其可执行:

chmod +x ~/bin/thunderbird

现在您应该能够双击附件并使用其他 snapd 应用程序(如 Chromium 或 OpenOffice)打开它们。

相关内容