A reinstalação do AppArmor falha

1

Eu uso o apparmor junto com libapache2-mod-apparmor para proteger alguns sites. No entanto, após uma reinstalação recente, parou de funcionar. Eu continuo recebendo este erro:

Setting up apparmor (2.7.0~beta1+bzr1774-1ubuntu2) ...
 * Starting AppArmor profiles
Warning from stdin (line 1): /sbin/apparmor_parser: cannot use or update cache, disable, or force-complain via stdin

[ OK ]
 * Reloading AppArmor profiles
Warning from stdin (line 1): /sbin/apparmor_parser: cannot use or update cache, disable, or force-complain via stdin
invoke-rc.d: initscript apparmor, action "reload" failed.

Eu tentei remover e remover completamente o apparmor, o apache2, o libapache2-mod-apparmor etc e depois reinstalar, mas continuo recebendo este erro. Tanto quanto eu sei, não há mais nada no sistema que poderia estar impedindo isso. Alguma idéia?

    
por Jeroen 01.02.2012 / 00:41

1 resposta

2

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
    
por user63370 14.05.2012 / 19:47