Isn't that "Not starting AppArmor in container" message just in: /lib/apparmor/apparmor.systemd -> /lib/apparmor/rc.apparmor.functions -> function is_container_with_internal_policy()
That looks unchanged (except a comment) but it behaves differently: root@testguest-apparmor-good:~# . /usr/lib/apparmor/rc.apparmor.functions root@testguest-apparmor-good:~# is_container_with_internal_policy root@testguest-apparmor-good:~# echo $? 0 root@testguest-apparmor-bad:~# . /usr/lib/apparmor/rc.apparmor.functions root@testguest-apparmor-bad:~# is_container_with_internal_policy root@testguest-apparmor-bad:~# echo $? 1 Looking into what happens in detail ... good: + SFS_MOUNTPOINT=/sys/kernel/security/apparmor + local ns_stacked_path=/sys/kernel/security/apparmor/.ns_stacked bad: + SFS_MOUNTPOINT=/sys/kernel/security/ + local ns_stacked_path=/sys/kernel/security//.ns_stacked Once we know that we can see that it is missing in the bad case good: root@testguest-apparmor-good:~# grep MODULE /usr/lib/apparmor/rc.apparmor.functions MODULE=apparmor SFS_MOUNTPOINT="${SECURITYFS}/${MODULE}" if [ -f "${SECURITYFS}/${MODULE}/profiles" ]; then SFS_MOUNTPOINT="${SECURITYFS}/${MODULE}" MODULE=apparmor /sbin/modprobe -qr $MODULE bad: root@testguest-apparmor-bad:~# grep MODULE /usr/lib/apparmor/rc.apparmor.functions SFS_MOUNTPOINT="${SECURITYFS}/${MODULE}" So whatever took away the modprobe from /usr/lib/apparmor/rc.apparmor.functions also removed the variable, but that has broken function is_container_with_internal_policy -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to apparmor in Ubuntu. https://bugs.launchpad.net/bugs/1895967 Title: Apparmor 3.0.0 does not load profiles in containers anymore Status in apparmor package in Ubuntu: Confirmed Bug description: Hi, I stumbled over this due to automatic tests checking proposed. I found that Focal no more could migrate to Groovy with: $ virsh migrate --unsafe --live fguest qemu+ssh://10.162.30.163/system error: unsupported configuration: Security driver model 'apparmor' is not available I looked after it and found that while all former releases detected apparmor correctly: $ virsh capabilities | grep -C 3 secmodel <cache> <bank id='0' level='3' type='both' size='15' unit='MiB' cpus='0-11'/> </cache> <secmodel> <model>apparmor</model> <doi>0</doi> </secmodel> <secmodel> <model>dac</model> <doi>0</doi> <baselabel type='kvm'>+64055:+108</baselabel> <baselabel type='qemu'>+64055:+108</baselabel> </secmodel> Now on groovy that didn't work anymore: <secmodel> <model>none</model> <doi>0</doi> </secmodel> <secmodel> <model>dac</model> <doi>0</doi> <baselabel type='kvm'>+64055:+108</baselabel> <baselabel type='qemu'>+64055:+108</baselabel> </secmodel> Since 3.0 is only in proposed: # apt-cache policy apparmor apparmor: Installed: 2.13.3-7ubuntu6 Candidate: 3.0.0~beta1-0ubuntu1 Version table: 3.0.0~beta1-0ubuntu1 500 500 http://archive.ubuntu.com/ubuntu groovy-proposed/main amd64 Packages *** 2.13.3-7ubuntu6 500 500 http://archive.ubuntu.com/ubuntu groovy/main amd64 Packages 100 /var/lib/dpkg/status I installed the former version. $ apt install apparmor=2.13.3-7ubuntu6 $ rm /var/cache/libvirt/qemu/capabilities/* $ systemctl restart libvirtd And it works again. Interestingly going back to 3.0 then works and keeps working. Therefore maybe it is a red-herring and I'll consider it incomplete & low prio for now until I know more (allowing others that might see the same to find this bug and chime in). To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/1895967/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp