我最近从 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。