LXC/LXD и AppArmor: В доступе отказано; пытался загрузить профиль в закрытом состоянии?

Я пытаюсь запустить брандмауэр (Zentyal) в Ubuntu 16.04 внутри контейнера LXD поверх хоста Arch Linux. Для этого требуется некоторая функциональность AppArmor (в основном, DHCP), поэтому я установил на хосте ядро ​​с поддержкой AppArmor и настроил конфигурацию LXD в соответствии со всеми указаниями, которые я нашел в Интернете, которые связаны с AppArmor, так что это не похоже на так:

name: router
profiles:
- default
config:
  raw.lxc: lxc.aa_profile= unconfined
  security.nesting: "true"
  security.privileged: "true"
  volatile.base_image:       9c774bed40a5a8a34c2c96c1a93f4d46b0f59cda96defc07bc2c29cf473beb22
      volatile.eth0.name: eth0
      volatile.eth1.name: eth1
      volatile.last_state.idmap: '[]'
      volatile.last_state.power: RUNNING
devices:
  eth0:
    nictype: physical
    parent: enp2s0
    type: nic
  eth1:
    nictype: bridged
    parent: br0
    type: nic
  root:
    path: /
    type: disk
ephemeral: false

Тем не менее, я все еще получаю эти ошибки в журналах Zentyal:

    2016/12/22 22:56:48 ERROR> Service.pm:964 EBox::Module::Service::restartService - root command /sbin/apparmor_parser --write-cache --replace /etc/apparmor.d/usr.sbin.named failed. 
    2016/12/22 22:59:43 ERROR> Sudo.pm:240 EBox::Sudo::_rootError - root command /sbin/apparmor_parser --write-cache --replace /etc/apparmor.d/usr.sbin.dhcpd failed. 
    2016/12/22 22:59:43 ERROR> Service.pm:962 EBox::Module::Service::restartService - Error restarting service: root command /sbin/apparmor_parser --write-cache --replace /etc/apparmor.d/usr.sbin.dhcpd failed. 
    2016/12/22 22:59:43 ERROR> Service.pm:964 EBox::Module::Service::restartService - root command /sbin/apparmor_parser --write-cache --replace /etc/apparmor.d/usr.sbin.dhcpd failed. 
    2016/12/22 22:59:44 ERROR> Sudo.pm:240 EBox::Sudo::_rootError - root command /sbin/apparmor_parser --write-cache --replace /etc/apparmor.d/usr.sbin.named failed. 
    2016/12/22 22:59:44 ERROR> Service.pm:962 EBox::Module::Service::restartService - Error restarting service: root command /sbin/apparmor_parser --write-cache --replace /etc/apparmor.d/usr.sbin.named failed. 
    2016/12/22 22:59:44 ERROR> Service.pm:964 EBox::Module::Service::restartService - root command /sbin/apparmor_parser --write-cache --replace /etc/apparmor.d/usr.sbin.named failed. 

И когда я пытаюсь выполнить одну из этих команд, чтобы получить более прямую ошибку, я получаю это:

/sbin/apparmor_parser --write-cache --replace /etc/apparmor.d/usr.sbin.dhcpd
/sbin/apparmor_parser: Unable to replace "/usr/sbin/dhcpd".  Permission denied; attempted to load a profile while confined?

Есть ли что-то еще, что можно сделать здесь, или это просто невозможно?

1 ответ

aa-complain appname отключит ограничения, но все равно будет жаловаться и писать в логи.

устанавливать

sudo apt-get install apparmor-utils

sudo aa-logprof будет просматривать журналы и спросить вас, хотите ли вы включить определенные разрешения для всех доступных профилей.

sudo aa-cleanprof appname or /pathto/app сотрет существующий профиль

sudo aa-genprof appname or /pathto/app создаст новый профиль и просканирует журналы на наличие необходимых изменений.

sudo aa-autodep appname or /pathto/app будет пытаться создать профиль и все зависимости для приложения.

Вы можете установить aa-complain appname затем выполните шаги, которые вы хотите сделать с приложением. Включите, выключите, перезапустите, перезагрузите, откройте файлы и т. Д. Затем запустите aa-logprof заставить apparmor искать изменения, которые вы можете одобрить или отклонить.

Если это не работает aa-cleanprof appname затем aa-autodep appname был бы самый быстрый путь к новому профилю. Если вы получили жалобу на наличие существующего профиля, перейдите на /etc/apparmor.d/ а также mv это к profilename_OLD,

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