web-dev-qa-db-fra.com

Comment personnaliser localement un profil apparmor?

Je voudrais exécuter Firefox avec le profil apparmor aa-enforce (d). Cela fonctionne bien, sauf que j'ai un plugin qui a besoin d'accéder au trousseau de clés via dbus. Lorsque le plugin ( https://github.com/swick/moz-gnome-keyring-integration ) essaie d'accéder au trousseau de clés, j'obtiens ce message dans les journaux:

[ 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"]

J'essaie donc d'accorder l'accès dbus à mon profil firefox, sans modifier le profil de base fourni par le package apparmor-profies, j'ai donc modifié le fichier dans /etc/apparamor.d/local/usr.bin.firefox.

Voici ce que j'ai essayé:

# 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,
}

mais alors, sur aa-enforce usr.bin.firefox, j'obtiens cette erreur:

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

C'est la première fois que j'essaye de créer ou de modifier un profil d'apparmeur, et je suis bloqué ici ... Quelle devrait être la syntaxe?

EDIT: en utilisant apparmor_parser, j'ai obtenu une autre information:

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

Donc, TOK_OPEN inattendu, attendant TOK_MODE ... aucune idée de ce que cela signifie encore.

EDIT2: J'ai essayé la même strophe directement dans le profil /etc/apparmor.d/usr.bin.firefox, et cela fonctionne. Le problème est donc lié à l'utilisation de la personnalisation locale ...

1
alci

Le problème vient des crochets ouvrants ({ et }). Le #include est déjà dans la déclaration du profil principal, donc les crochets ne sont pas requis.

# 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,
1
Ken Sharp