打开 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
答案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 配置文件的正确方法。