Evince 文档查看器 - 无法执行子进程“nemo”(权限被拒绝)

Evince 文档查看器 - 无法执行子进程“nemo”(权限被拒绝)

我最近从 nautilus 迁移到了 Nemo。我一直在阅读 PDF,并选择“文件”>“打开包含文件夹”选项。

出现以下消息:

Failed to execute child process "nemo" (Permission denied)

为什么会发生这种情况?
我该怎么办?

答案1

您不必完全关闭保护,只需/usr/bin/evince { ... }在以下代码块中为每个允许使用的工具添加一行即可:

/etc/apparmor.d/usr.bin.evince

线条应具有以下形式

/path/to/binary ixr,

然后重新启动 AppArmor:

sudo service apparmor restart

答案2

此问题似乎是因为 AppArmor 限制了 evince 的功能。一种解决方法是禁用 evince 的 AppArmor:

sudo ln -s /etc/apparmor.d/usr.bin.evince /etc/apparmor.d/disable/usr.bin.evince
sudo /etc/init.d/apparmor restart

有关此问题的更多讨论,请查看关联

答案3

作为奥斯陆指出,这个问题是由于 AppArmor 限制了 evince 可以启动的程序。您可以通过编辑将 nemo 添加到 Evince 允许启动的应用程序列表中/etc/apparmor.d/usr.bin.evince(您需要 root 权限)

找到该文件的如下部分:

  # By default, we won't support launching a terminal program in Xterm or
  # KDE's konsole. It opens up too many unnecessary files for most users.
  # People who need this functionality can uncomment the following:
  ##include <abstractions/ubuntu-xterm>
  ##include <abstractions/ubuntu-konsole>

  /usr/bin/evince rmPx,
  /usr/bin/evince-previewer Px,
  /usr/bin/yelp Cx -> sanitized_helper,
  /usr/bin/bug-buddy px,
  # 'Show Containing Folder' (LP: #1022962)
  /usr/bin/nautilus Cx -> sanitized_helper, # Gnome
  /usr/bin/pcmanfm Cx -> sanitized_helper,  # LXDE
  /usr/bin/krusader Cx -> sanitized_helper, # KDE
  /usr/bin/thunar Cx -> sanitized_helper,   # XFCE

添加以下行:/usr/bin/nemo Cx -> sanitized_helper, # Gnome,Linux Mint,etc

使用以下方法重启 AppArmor

sudo /etc/init.d/apparmor restart

Evince 现在应该能够启动 nemo。

相关内容