J'essaie de faire fonctionner une application avec snapd et j'ai rencontré quelques problèmes concernant les autorisations d'AppArmor. Il semble que pour que mon application soit pleinement fonctionnelle, elle a besoin de règles AppArmor personnalisées qui ne sont fournies par aucune des interfaces existantes.
Je peux faire fonctionner les choses en ajoutant manuellement des règles supplémentaires au profil AppArmor de l'application après l'installation instantanée sous/var/lib/snapd/apparmor/profiles /, comme ceci:
/sys/devices/** r,
/sys/class/net/eth0/address r,
/dev/sda1 r,
capability sys_rawio,
Existe-t-il un moyen de faire en sorte que le composant logiciel enfichable les configure automatiquement lors de son installation ou dois-je conserver des scripts de post-installation personnalisés pour pouvoir apporter ces modifications?
Le bas de cette page montre la syntaxe de yaml suggérant que cela est possible:
services:
- name: bar # uses 'default' template with 'network-client' cap
- name: baz # uses 'default' template with specified caps
caps:
- network-client
- norf-framework_client
- name: qux # uses 'nondefault' template with no caps
security-template: nondefault
- name: quux
security-policy: # uses custom security policy as defined by relative paths
apparmor: meta/quux.aa
seccomp: meta/quux.sc
mais cela fait référence à Ubuntu 15.10 (j'utilise 16.04) et il semble utiliser une syntaxe (par exemple, "services" au lieu de "applications") qui n'est actuellement pas prise en charge par snapd. Merci pour toute l'aide que vous pouvez apporter.
Pour cela, en 16.04, utilisez une "interface" définie dans le code de composant logiciel enfichable, pilotée par un schéma personnalisé dans votre définition de composant logiciel enfichable. Il y a un groupe déjà défini, et il semble que tout ce dont vous avez besoin est:
Il est peu probable que vous obteniez une couverture/un système/des périphériques/*, mais je suppose que vous avez en fait besoin de types d'accès spécifiques à des types spécifiques de périphériques, et ceux-ci peuvent tous être conçus et débarqués.
Le meilleur endroit pour trouver ce dont vous avez besoin est dans #snappy sur freenode IRC, discutez avec zyga pour des pointeurs de code décrivant les interfaces existantes. Devrait être un simple patch pour travailler.