当 Evince 尝试使用 Chrome 打开链接时权限被拒绝

use*_*615 9 permissions pdf google-chrome evince

我知道存在有关 Evince 打开链接问题的问题,但这看起来像是一个新错误。这是在 21.04 中出现的,但我认为该错误是最近出现的,即链接在 21.04 中较早时有效。因此,我从命令行启动 evince,当我尝试打开文档中的链接时,出现以下错误:

[205689:205689:0812/101716.420196:FATAL:double_fork_and_exec.cc(131)] execv /opt/google/chrome/crashpad_handler: Permission denied (13)
Run Code Online (Sandbox Code Playgroud)

这是 evince 40.1 和 Chrome 92.0.4515.131

我提交了一个关于此的 evince 问题: https: //gitlab.gnome.org/GNOME/evince/-/issues/1646 并确定问题是 AppArmor,它阻止 evince 调用 Chrome(但允许它使用 Firefox) 。所以我需要修改AppArmor配置文件来证明。我不知道该怎么做。我尝试使用 aa-logprof,但我显然需要我能理解的说明。我将不胜感激任何逐步显示如何对证据配置文件进行必要修改的指示。

更新:成功。我将此行添加到抽象/ubuntu_helpers 中的 sanitized_helper 配置文件中:

/opt/google/chrome/crashpad_handler Pixr,
Run Code Online (Sandbox Code Playgroud)

并重新加载 evince 配置文件。现在,单击链接时出现以下错误:

[20036:20069:0813/075235.070369:ERROR:address_tracker_linux.cc(195)] Could not create NETLINK socket: Permission denied (13)
[20036:20065:0813/075235.071590:ERROR:udev_watcher.cc(52)] Failed to initialize a udev monitor.
Opening in existing browser session.
Run Code Online (Sandbox Code Playgroud)

并且该链接在新的 chrome 选项卡中成功打开。

use*_*615 11

编辑文件 ubuntu-helpers:
sudo gedit /etc/apparmor.d/abstractions/ubuntu-helpers
在 下profile sanitized_helper {
找到以 /opt/google/chrome 开头的行。
添加此行:
/opt/google/chrome/crashpad_handler Pixr,
保存文件。
重新加载 evince 配置文件(在 /etc/apparmor.d 中):
sudo apparmor_parser -r usr.bin.evince

  • 我使用了“/opt/google/chrome/chrome_crashpad_handler Pixr”,因为该路径中没有任何名称为“/opt/google/chrome/crashpad_handler”的内容,并且解决方案有效。然后我改回你的解决方案,它停止工作。然后我又回到了我的解决方案。:| (4认同)
  • 多谢!也在 Debian 11 下工作。对于最后一部分,您可以只运行“sudo service apparmor restart”。 (2认同)
  • 在我的系统上,它仍然是“chrome_crashpad_handler”。这是 chrome 版本 94.0.4606.61(官方版本)(64 位)。很奇怪的是,您的系统上的名称会有所不同。 (2认同)