Как локально настроить профиль AppArmor?

Как локально настроить профиль AppArmor?

Я хотел бы запустить Firefox с профилем apparmor aa-enforce(d). Это работает отлично, за исключением того, что у меня есть плагин, которому нужен доступ к связке ключей через 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, и я застрял здесь... Какой должен быть синтаксис?

EDIT: используя 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,

Связанный контент