.png)
Não consigo executar o dovecot no lxc no Buster. Desativo o PrivateTmp, mas não é suficiente... Ainda assim:
[ 4850.883141] audit: type=1400 audit(1563803461.322:34): apparmor="DENIED" operation="mount" info="failed flags match" error=-13 profile="lxc-container-default-cgns" name="/" pid=23810 comm="(dovecot)" flags="rw, rslave"
Responder1
Você tentou com o valor não confinado do AppArmor?
lxc.apparmor.profile: unconfined
Configure-o em seu /etc/pve/lxc/CTID.conf
Responder2
Atualizar a unidade de serviço para evitar PrivateTmp não funciona no LXC, infelizmente, sem conceder os privilégios necessários via AppArmor no host.
Depois de explorar as opções, parece que não há mais uma maneira de fazer isso funcionar apenas dentro do contêiner.
Para fazer funcionar, removi todas as edições no contêiner (me livrei da configuração do PrivateTmp) e mudei para a modificação das políticas do AppArmor da seguinte maneira:
No host, crie uma nova política AppArmor em
/etc/apparmor.d/lxc/lxc-dovecot
e preencha-a com o seguinte:# Do not load this file. Rather, load /etc/apparmor.d/lxc-containers, which # will source all profiles under /etc/apparmor.d/lxc profile lxc-container-dovecot flags=(attach_disconnected,mediate_deleted) { #include <abstractions/lxc/container-base> #include <abstractions/lxc/start-container> deny mount fstype=devpts, mount fstype=cgroup -> /sys/fs/cgroup/**, mount fstype=cgroup2 -> /sys/fs/cgroup/**, mount options=(rw,bind), mount options=(rw,rbind), mount options=(rw,rshared), mount options=(ro,nosuid,noexec,remount,bind,strictatime), }
Recarregue o AppArmor com
$ systemctl restart apparmor.service
Configure o contêiner para usar o novo perfil adicionando a seguinte linha à configuração do contêiner LXC, normalmente em
/var/lib/lxc/$container/config
:# Add or edit the following line to set the apparmor profile used lxc.apparmor.profile = lxc-container-dovecot
Reinicie seu contêiner:
$ lxc-stop -n $container && sleep 1 && lxc-start -d -n $container