Я использую apparmor вместе с libapache2-mod-apparmor для песочницы некоторых веб-сайтов. Однако после недавней переустановки он перестал работать. Я продолжаю получать эту ошибку:
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.
Я пытался полностью удалить и очистить apparmor, apache2, libapache2-mod-apparmor и т. Д., А затем переустановить, но я получаю эту ошибку. Насколько я знаю, в системе нет ничего, что могло бы помешать этому. Есть идеи?
AppArmor не может генерировать или обновлять файлы кэша, когда функции, о которых сообщают ядро и те, которые находятся в кэше, не синхронизированы. Это может произойти, если установлено ядро с новыми функциями и / или пользовательское пространство не было обновлено для соответствия и / или есть ошибка в компиляторе пользовательского пространства.
Один из способов попасть в эту ситуацию - установить ядро из выпуска для разработчиков или из апстрима и не обновлять пользовательское пространство apparmor соответствующими пакетами. Это не мешает apparmor загружать политику, но генерирует предупреждения и замедляет его, поскольку он выполняет новую компиляцию при каждой загрузке.
Удаление и повторная установка набора пакетов, таких как apparmor
, apache2
, libapache2
, .. могут или не могут корректно удалить и очистить старый несовместимый файл кэша. Частичное удаление файлов кэша обычно приводит к тому, что новые записи кэша не генерируются, поскольку в кэше хранятся записи только для одного набора функций.
Файлы кэша хранятся в /etc/apparmor.d/cache/
.
Вы можете сравнить наборы функций кэша и ядра, посмотрев:
/etc/apparmor.d/cache/.features
и в зависимости от вашего ядра:
/sys/kernel/security/apparmor/features/
(каталог записей)
[ 1119] или:
/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
Если это не сработало, вы нажали на ошибку, и я бы порекомендовал заполнить ее с помощью панели запуска:
ubuntu-bug apparmor