由于 apparmor 拒绝访问 ~/.cache 这个符号链接,Evince 运行缓慢

由于 apparmor 拒绝访问 ~/.cache 这个符号链接,Evince 运行缓慢

Evince 显示 PDF 文档并需要字体。

上下文:~/.cache由管理员符号链接

此处的用户目录分为“干净”部分和“杂乱”部分。我们的想法是,更多地关注“干净”部分(备份等),而较少关注“杂乱”部分。

用户'~/.cache是混乱部分的符号链接。

症状:启动缓慢

这会导致 evince 启动缓慢:等待 20 秒才出现任何窗口。窗口出现后,一切似乎都很正常。

调查

  • strace显示,在前 2 秒内,它多次尝试访问文件,~/.cache/fontconfig/var/cache/fontconfig都失败了EACCESS
  • 然后它花费大约 18 秒枚举数据/usr/share/fonts
  • ~/.cache/fontconfig可由用户读写,/var/cache/fontconfig不存在。

解释

类似的问题(例如Evince...(权限被拒绝) - 询问 Ubuntu)强烈建议应用装甲参与。

怎么修?

答案1

/etc/apparmor.d/abstractions/fonts通过修改以包含如下行可以立即解决这个问题:

/complete/template/path/to/userdirs/*/.cache/fontconfig          r,

这适用于所有用户(*位于用户登录路径的一部分)。

这感觉是对的。是吗?

相关内容