O AppArmor falha ao gerar ou atualizar arquivos de cache quando os recursos relatados pelo kernel e os que estão no cache estão fora de sincronia. Isso pode acontecer quando um kernel com novos recursos é instalado e / ou o espaço do usuário não foi atualizado para corresponder e / ou há um bug no compilador userspace.
Uma maneira de entrar nesta situação é instalando um kernel a partir de uma versão de desenvolvimento ou a partir do upstream e não atualizando também o apparmor userspace com pacotes correspondentes. Isso não impede o apparmor da política de carregamento, mas gera avisos e diminui a velocidade, à medida que faz uma nova compilação em cada carga.
Remover e reinstalar um conjunto de pacotes como apparmor
, apache2
, libapache2
, .. pode ou não remover corretamente e limpar o antigo arquivo de cache inconsistente. A remoção parcial dos arquivos de cache geralmente resultará em novas entradas de cache não sendo geradas, pois o cache armazena apenas entradas para um conjunto de recursos.
Os arquivos de cache são armazenados em /etc/apparmor.d/cache/
.
Você pode comparar os conjuntos de recursos do cache e do kernel observando:
/etc/apparmor.d/cache/.features
e dependendo do seu kernel:
/sys/kernel/security/apparmor/features/
(um diretório de entradas)
ou:
/sys/kernel/security/apparmor/features
(um arquivo)
e:
/sys/kernel/security/apparmor/matching
Você pode verificar o status da política carregada, determinar se a política está sendo carregada e apenas as falhas de atualização do cache que você está enfrentando usando:
sudo aa-status
Você pode tentar forçar a regeneração do cache usando:
sudo /etc/init.d/apparmor restart
Se isso falhar, você pode tentar remover manualmente os arquivos de cache e, em seguida, gerar novamente o cache:
sudo rm -rf /etc/apparmor.d/cache/*
sudo /etc/init.d/apparmor restart
Se isso não funcionar, você acertou um bug e eu recomendaria um bug no launchpad:
ubuntu-bug apparmor