Я пытаюсь получить приложение, работающее с snapd, и столкнулся с некоторыми проблемами относительно AppArmor permisions. Кажется, что, чтобы иметь мое приложение быть полностью функциональным, требуются некоторые пользовательские правила AppArmor, которые не предоставлены ни одним из существующих интерфейсов.
Я могу получить вещи, работающие путем ручного добавления дополнительных правил к профилю AppArmor приложения после поспешной установки под/var/lib/snapd/apparmor/profiles/, как это:
/sys/devices/** r,
/sys/class/net/eth0/address r,
/dev/sda1 r,
capability sys_rawio,
Существует ли способ иметь Снимок, автоматически настраивают их, когда он будет установлен, или я должен буду поддержать пользовательские сценарии постустановки для внесения этих изменений?
Нижняя часть этой страницы показывает yaml синтаксис, который предполагает, что это может быть возможно:
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
но это в отношении Ubuntu 15.10 (я использую 16.04), и это, кажется, использует синтаксис (например, 'сервисы' вместо 'приложений') не в настоящее время поддерживаемый snapd. Спасибо за любую справку можно обеспечить.
В 16,04 способ сделать это с 'интерфейсом', определенным в коде snapd, который управляется пользовательской схемой в Вашем поспешном определении. Существует набор, уже определенный, и он похож на все, в чем Вы нуждаетесь:
Вы вряд ли доберетесь, слой/sys/devices /* приземлился, но я подозреваю, что Вам на самом деле нужны определенные типы доступа к определенным типам устройств, и они могут все быть разработаны и посажены.
лучшее место, чтобы долго обсудить, в чем Вы нуждаетесь, находится в #snappy на freenode IRC, чате с zyga для указателей для кодирования описания существующих интерфейсов. Должен быть простой патч для обрабатывания.