Apparmor:允许 Inkscape 在 $HOME/config/inkscape/extensions/ 中执行扩展

Apparmor:允许 Inkscape 在 $HOME/config/inkscape/extensions/ 中执行扩展

我想通过安装 SVGO-Optimizer 来扩展 Inkscape(使用 snap 安装)超音速巡航机在 Inkscape 的本地扩展目录中。

根据 Inkscape 首选项对话框(编辑/首选项/系统),要使用的目录是(并放入扩展名)

$HOME/.config/inkscape/extensions/

我想要安装inkscape-svgo.inx。我跟着inkscape-svgo 说明

但是,Apparmor 不允许我在 Inkscape GUI 中执行扩展。我无法执行“另存为 SVGO 优化的 SVG”对话框。

出现一个不具信息性的“另存为 [任何文件名] 失败”对话框。

我怀疑这是 Apparmor 问题。
如何定义或扩展 Apparmor 规则以允许 Inkscape 执行 SVGO 扩展?

journalctl给出了这个输出:

AVC apparmor="DENIED" operation="open" profile="snap.inkscape.inkscape" name="/proc/148064/mountinfo" pid=148064 comm="inkscape" requested_mask="r" denied_mask="r" fsuid=1000 ouid=1000
AVC apparmor="DENIED" operation="exec" profile="snap.inkscape.inkscape" name="$HOME/.config/inkscape/extensions/inkscape-svgo" pid=149456 comm="inkscape" requested_mask="x" denied_mask="x" fsuid=1000 ouid=1000
Script::execute(): failed to execute program '$HOME/.config/inkscape/extensions/inkscape-svgo'. 
Reason: Failed to execute child process “$HOME/.config/inkscape/extensions/inkscape-svgo” (Permission denied)

我的 Inkscape 版本:

snap list inkscape
Name      Version                    Rev   Tracking       Publisher  Notes
inkscape  1.1-ce6663b3b7-2021-05-25  9090  latest/stable  inkscape✓  -

这些是 inkscape apparmor 配置文件,位于目录中/var/lib/snapd/apparmor/profiles/

38032  /var/lib/snapd/apparmor/profiles/snap.inkscape.hook.configure
75557  /var/lib/snapd/apparmor/profiles/snap.inkscape.inkscape
70951  /var/lib/snapd/apparmor/profiles/snap.inkscape.viewer

第一个数字是文件大小(以字节为单位)。
如你所见,它们很长、很复杂,而且相互依赖。

答案1

AppArmor 规则在存储在中的配置文件中定义。/etc/apparmor.d/ 您需要使用规则更新 AppArmor 配置文件,以允许文件系统访问您感兴趣的 Inkscape 路径。

来自 Ubuntu 的这个教程将帮助指导您。

更多详细信息请参阅此处的 AppArmor 文档。

相关内容