Добавить пользовательские правила AppArmor привязаться?

Я пытаюсь получить приложение, работающее с 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. Спасибо за любую справку можно обеспечить.

7
задан 9 May 2019 в 07:08

1 ответ

В 16,04 способ сделать это с 'интерфейсом', определенным в коде snapd, который управляется пользовательской схемой в Вашем поспешном определении. Существует набор, уже определенный, и он похож на все, в чем Вы нуждаетесь:

  • интерфейс неструктурированного диска (iirc кто-то еще хочет это также)
  • необработанный интерфейс Ethernet

Вы вряд ли доберетесь, слой/sys/devices /* приземлился, но я подозреваю, что Вам на самом деле нужны определенные типы доступа к определенным типам устройств, и они могут все быть разработаны и посажены.

лучшее место, чтобы долго обсудить, в чем Вы нуждаетесь, находится в #snappy на freenode IRC, чате с zyga для указателей для кодирования описания существующих интерфейсов. Должен быть простой патч для обрабатывания.

3
ответ дан 23 November 2019 в 06:51

Другие вопросы по тегам:

Похожие вопросы: