我使用仪表器和libriache2-mod-设备一起沙箱一些网站。但是,在最近重新安装之后,它就停止工作了。我一直在犯这个错误:
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.我试图完全删除和清除设备,apache2,libasache2-mod设备等,然后重新安装,但我一直得到这个错误。据我所知,在这个系统中没有任何其他东西可以阻止它。有什么想法吗?
发布于 2012-05-14 17:47:31
当内核和缓存中的特性不同步时,AppArmor无法生成或更新缓存文件。当安装了具有新特性的内核并且/或用户空间尚未更新以匹配和/或用户空间编译器中有错误时,就会发生这种情况。
在这种情况下,一种方法是从开发版本安装内核,或者从上游安装内核,而不是用匹配的包更新设备用户空间。这并不能阻止设备加载策略,但它确实会生成警告并减缓其速度,因为它在每次加载时都会执行新的编译。
删除并重新安装一组软件包,如apparmor、apache2、libapache2、。是否可以正确删除和清除旧的不一致的缓存文件。部分删除缓存文件通常不会生成新的缓存条目,因为缓存只存储一个功能集的条目。
缓存文件存储在/etc/apparmor.d/cache/中。
通过查看以下内容,您可以比较缓存和内核特性集:
/etc/apparmor.d/cache/.features取决于您的内核:
/sys/kernel/security/apparmor/features/(条目目录)
或者:
/sys/kernel/security/apparmor/features(档案)
以及:
/sys/kernel/security/apparmor/matching您可以检查已加载的策略状态,以确定是否正在加载策略及其正在经历的缓存更新失败:
sudo aa-status您可以尝试通过以下方法强制重新生成缓存:
sudo /etc/init.d/apparmor restart如果失败,可以尝试手动删除缓存文件,然后重新生成缓存:
sudo rm -rf /etc/apparmor.d/cache/*
sudo /etc/init.d/apparmor restart如果这样做不起作用,那么您已经碰到了一个bug,我建议您用启动板归档一个bug:
ubuntu-bug apparmorhttps://askubuntu.com/questions/100374
复制相似问题