我今天使用 Ubuntu 17.10 和 Libreoffice 更新了所有内容。
尝试从我的 /Documents 文件夹打开 .od_ 文档现在会出现“拒绝访问”的错误(另请参阅问题 [拒绝访问 *.doc | Libreoffice 5.4.5.1)
/在我的情况下,Documents 是通过 NFS 安装的。
将文档从 NFS 文件系统复制到本地 $HOME 是可行的,并且复制的文档可以用 Libreoffice 打开。
因此,该错误似乎只影响网络或可移动文件系统。
编辑:构建问题并将解决方案移至单独的答案
答案1
临时解决方案,直到重新启动(请参阅此错误libreoffice 无法打开不在 $HOME 内的文档):
sudo apparmor_parser -R /etc/apparmor.d/usr.lib.libreoffice.program.*
禁用用户配置文件的永久解决方案:
sudo ln -s /etc/apparmor.d/usr.lib.libreoffice.program.* /etc/apparmor.d/disable/
答案2
在互联网上搜索后,我在 Ubuntu One 中找到了介绍解决方案的帖子:https://bugs.launchpad.net/ubuntu/+source/libreoffice/+bug/1751005/comments/10
据我所知,冗长的讨论与装甲防护有关。
我最终做了什么以及什么对我有帮助(不明白为什么 :(
sudo ln -s /etc/apparmor.d/usr.lib.libreoffice.program.* /etc/apparmor.d/disable/
但是现在重新启动 apparmor 服务会出现失败的情况。所以我不得不再次搜索,这解决了我的第二个问题。
sudo apt-get install apparmor-easyprof-ubuntu
但是,libreoffice 仍然无法打开我的文件。所以我重新启动了。重新启动后,我检查了 apparmor 的状态
sudo service apparmor status
交付
apparmor.service - AppArmor initialization
Loaded: loaded (/lib/systemd/system/apparmor.service; enabled; vendor preset: enabled)
Active: active (exited) since Thu 2018-02-22 23:43:41 CET; 47min ago
Docs: man:apparmor(7)
http://wiki.apparmor.net/
Process: 945 ExecStart=/etc/init.d/apparmor start (code=exited, status=0/SUCCESS)
Main PID: 945 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 4915)
Memory: 0B
CPU: 0
CGroup: /system.slice/apparmor.service
Feb 22 23:43:41 lnx54srv14 systemd[1]: Starting AppArmor initialization...
Feb 22 23:43:41 lnx54srv14 apparmor[945]: * Starting AppArmor profiles
Feb 22 23:43:41 lnx54srv14 apparmor[945]: Skipping profile in /etc/apparmor.d/disable: usr.bin.firefox
Feb 22 23:43:41 lnx54srv14 apparmor[945]: Skipping profile in /etc/apparmor.d/disable: usr.lib.libreoffice.program.oosplash
Feb 22 23:43:41 lnx54srv14 apparmor[945]: Skipping profile in /etc/apparmor.d/disable: usr.lib.libreoffice.program.senddoc
Feb 22 23:43:41 lnx54srv14 apparmor[945]: Skipping profile in /etc/apparmor.d/disable: usr.lib.libreoffice.program.soffice.bin
Feb 22 23:43:41 lnx54srv14 apparmor[945]: Skipping profile in /etc/apparmor.d/disable: usr.lib.libreoffice.program.xpdfimport
Feb 22 23:43:41 lnx54srv14 apparmor[945]: Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd
Feb 22 23:43:41 lnx54srv14 apparmor[945]: ...done.
Feb 22 23:43:41 lnx54srv14 systemd[1]: Started AppArmor initialization.
令人惊讶的是,Libreoffice 现在可以在我所有 NFS 安装的文档上再次运行。
但也许你应该查看注释 #18 以及 launchpad 上的更多内容。他们可能会提出另一个(更好的?)解决方案:https://bugs.launchpad.net/ubuntu/+source/libreoffice/+bug/1751005/comments/18
答案3
为了解决这个问题,我通过在 AppArmor 配置文件 /etc/apparmor.d/usr.bin.evince 中添加以下行来解决这个问题:
owner /path/to/mounted/filesystem/** rw,
其次是
sudo apparmor_parser -r /etc/apparmor.d/usr.bin.evince
重新读取配置。