Переустановить AppArmor не удалось

Я использую 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 и т. Д., А затем переустановить, но я получаю эту ошибку. Насколько я знаю, в системе нет ничего, что могло бы помешать этому. Есть идеи?

2
задан 1 February 2012 в 03:41

1 ответ

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
0
ответ дан 1 February 2012 в 03:41

Другие вопросы по тегам:

Похожие вопросы: