Evince:加载共享库时出错:权限被拒绝

Evince:加载共享库时出错:权限被拒绝

打开 PDF 时,我收到权限被拒绝错误,而 ROOT。

root@brix:~# evince *.pdf
evince: error while loading shared libraries: libz.so.1: failed to map segment from shared object: Permission denied

这种情况在以下情况下开始发生:

mv /usr/local /opt/local
ln -s /opt/local /usr/local

(我这样做是为了能够 rsync 单个 /opt/ 文件夹作为备份)

注意:我在 /usr/local/lib 中有一个编译好的 libz.so.1(以及 libpoppler 和相关文件),否则我认为这不会成为问题

答案1

这根本不是调试 apparmor 问题的方法。

您用来sudo aa-logprof检查日志中的问题。然后您将有机会查看日志中的任何问题并修改您的 aa 配置文件。

首先备份原始文件(将其备份在 /root/aa-profiles 中)总是一个好主意。

查看日志后,最好手动查看配置文件并确保其合理。

看:

https://wiki.ubuntu.com/DebuggingApparmor

http://www.insanitybit.com/2012/05/29/apparmor-how-to/

http://blog.bodhizazen.com/linux/apparmor-privoxy-profile/

答案2

事实上,这要归咎于 AppArmor。

root@brix:~# apparmor_status
apparmor module is loaded.
14 profiles are loaded.
14 profiles are in enforce mode.
/usr/bin/evince

安装(apt-get install apparmor-utils)并应用以下解决方法

root@brix:~# aa-complain /usr/bin/evince
Setting /usr/bin/evince to complain mode.

再次运行

root@brix:/etc# apparmor_status
apparmor module is loaded.
14 profiles are loaded.
11 profiles are in enforce mode.

允许您成功启动 Evince。更多信息https://help.ubuntu.com/community/AppArmor,包括修改 apparmor 配置文件的正确方法。

相关内容