.png)
No puedo ejecutar dovecot en lxc en Buster. Desactivo PrivateTmp, pero no es suficiente... Aún así:
[ 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"
Respuesta1
¿Probaste con el valor ilimitado de AppArmor?
lxc.apparmor.profile: unconfined
Configúrelo en su /etc/pve/lxc/CTID.conf
Respuesta2
Desafortunadamente, actualizar la unidad de servicio para evitar PrivateTmp no funciona en LXC sin otorgar los privilegios necesarios a través de AppArmor en el host.
Después de explorar las opciones, parece que ya no hay una manera de hacer que esto funcione únicamente desde el contenedor.
Para que funcione, eliminé todas las ediciones en el contenedor (así que me deshice de la configuración de PrivateTmp) y pasé a modificar las políticas de AppArmor de la siguiente manera:
En el host, cree una nueva política de AppArmor
/etc/apparmor.d/lxc/lxc-dovecot
y rellénela con lo siguiente:# 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), }
Vuelva a cargar AppArmor con
$ systemctl restart apparmor.service
Configure el contenedor para usar el nuevo perfil agregando la siguiente línea a la configuración de su contenedor LXC, generalmente en
/var/lib/lxc/$container/config
:# Add or edit the following line to set the apparmor profile used lxc.apparmor.profile = lxc-container-dovecot
Reinicie su contenedor:
$ lxc-stop -n $container && sleep 1 && lxc-start -d -n $container