web-dev-qa-db-fra.com

La réinstallation d'AppArmor échoue

J'utilise apparmor avec libapache2-mod-apparmor pour sandboxer certains sites Web. Cependant, après une réinstallation récente, il a cessé de fonctionner. Je reçois toujours cette erreur:

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.

J'ai essayé de supprimer et de purger complètement apparmor, Apache2, libapache2-mod-apparmor, etc., puis de réinstaller, mais je reçois toujours cette erreur. Autant que je sache, rien d'autre sur le système ne pourrait l'empêcher. Des idées?

1
Jeroen

AppArmor ne parvient pas à générer ou à mettre à jour les fichiers de cache lorsque les fonctionnalités signalées par le noyau et celles du cache ne sont pas synchronisées. Cela peut se produire lorsqu'un noyau avec de nouvelles fonctionnalités est installé et/ou que l'espace utilisateur n'a pas été mis à jour pour correspondre et/ou qu'il y a un bogue dans le compilateur d'espace utilisateur.

Une façon de se retrouver dans cette situation est d'installer un noyau à partir d'une version de développement ou en amont et de ne pas mettre à jour également l'espace utilisateur de l'apparmeur avec les packages correspondants. Cela n'empêche pas apparmor de charger la politique mais cela génère des avertissements et le ralentit car il effectue une nouvelle compilation à chaque chargement.

Suppression et réinstallation d'un ensemble de packages comme apparmor, Apache2, libapache2, .. peut ou peut ne pas supprimer et nettoyer correctement l'ancien fichier de cache incohérent. La suppression partielle des fichiers de cache entraîne généralement la non-génération de nouvelles entrées de cache car le cache ne stocke que les entrées pour un ensemble de fonctionnalités.

Les fichiers de cache sont stockés dans /etc/apparmor.d/cache/.

Vous pouvez comparer les ensembles de fonctionnalités de cache et de noyau en regardant:

/etc/apparmor.d/cache/.features

et en fonction de votre noyau:

/sys/kernel/security/apparmor/features/

(un répertoire d'entrées)

ou:

/sys/kernel/security/apparmor/features

(un fichier)

et:

/sys/kernel/security/apparmor/matching

Vous pouvez vérifier l'état de la stratégie chargée, pour déterminer si la stratégie est en cours de chargement et ses échecs de mise à jour du cache que vous rencontrez en utilisant:

Sudo aa-status

Vous pouvez essayer de forcer la régénération du cache en utilisant:

Sudo /etc/init.d/apparmor restart

Si cela échoue, vous pouvez essayer de supprimer manuellement les fichiers de cache puis de régénérer le cache:

Sudo rm -rf /etc/apparmor.d/cache/*
Sudo /etc/init.d/apparmor restart

Si cela ne fonctionne pas, vous avez rencontré un bug et je recommanderais de déposer un bug avec le tableau de bord:

ubuntu-bug apparmor
2
user63370