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
,