如何本地定制 apparmor 配置文件?

如何本地定制 apparmor 配置文件?

我想使用 aa-enforce(d) apparmor 配置文件运行 Firefox。这很好用,但我有一个插件需要通过 dbus 访问密钥环。当插件 (https://github.com/swick/moz-gnome-keyring-integration)尝试访问密钥环,我在日志中收到此消息:

[ apparmor="DENIED" operation="dbus_method_call" bus="session" path="/org/freedesktop/secrets" interface="org.freedesktop.DBus.Properties" member="Get" mask="send" name="org.freedesktop.secrets" pid=20004 profile="/usr/lib/firefox/firefox{,*[^s][^h]}" peer_pid=2810 peer_profile="unconfined"]

所以我正在尝试授予 dbus 访问权限到我的 Firefox 配置文件,而不改变 apparmor-profies 包提供的基本配置文件,所以我修改了 中的文件/etc/apparamor.d/local/usr.bin.firefox

以下是我尝试过的:

# Site-specific additions and overrides for usr.bin.firefox.
# For more details, please see /etc/apparmor.d/local/README.
# Allow gnome keyring integration to work
/usr/lib/firefox/firefox{,*[^s][^h]} {
  dbus (send,receive)
    bus=session
    interface=org.freedesktop.DBus.Properties
    path=/org/freedesktop/secrets,
}

但是,在 aa-enforce usr.bin.firefox 上,我收到此错误:

apparmor.common.AppArmorException: 'local/usr.bin.firefox profile in local/usr.bin.firefox contains syntax errors in line: 4.'

这是我第一次尝试创建或修改 apparmor 配置文件,但我被卡在这里...语法应该是什么?

编辑:使用 apparmor_parser,我得到了另一点信息:

AppArmor parser error for /etc/apparmor.d/usr.bin.firefox in /etc/apparmor.d/local/usr.bin.firefox at line 4: syntax error, unexpected TOK_OPEN, expecting TOK_MODE

因此,意外的 TOK_OPEN,预期的 TOK_MODE... 不知道它是什么意思。

EDIT2:我直接在 /etc/apparmor.d/usr.bin.firefox 配置文件中尝试了相同的节,并且成功了。所以问题与使用本地自定义有关...

答案1

问题出在左括号 ({}) 上。该#include语句已位于主配置文件的声明中,因此不需要括号。

# Site-specific additions and overrides for usr.bin.firefox.
# For more details, please see /etc/apparmor.d/local/README.
# Allow gnome keyring integration to work

dbus (send,receive)
  bus=session
  interface=org.freedesktop.DBus.Properties
  path=/org/freedesktop/secrets,

相关内容