web-dev-qa-db-ja.com

AppArmorのインストールが失敗する

Libapache2-mod-apparmorと一緒にapparmorを使用して、一部のWebサイトをサンドボックス化しています。ただし、最近の再インストール後、機能しなくなりました。私はこのエラーを受け続けます:

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
Jeroen

カーネルによって報告された機能とキャッシュ内の機能が同期していない場合、AppArmorはキャッシュファイルの生成または更新に失敗します。これは、新しい機能を備えたカーネルがインストールされている、および/またはユーザースペースが一致するように更新されていない、および/またはユーザースペースコンパイラにバグがある場合に発生する可能性があります。

この状況に陥る1つの方法は、開発リリースまたは上流からカーネルをインストールし、一致するパッケージでapparmorユーザー空間を更新しないことです。これはapparmorがポリシーをロードするのを停止しませんが、警告を生成し、各ロードで新しいコンパイルを行うので遅くなります。

apparmorApache2libapache2、..のような一連のパッケージを削除して再インストールすると、古い一貫性のないキャッシュファイルが正しく削除および消去される場合があります。キャッシュには1つの機能セットのエントリしか格納されないため、キャッシュファイルを部分的に削除すると、通常、新しいキャッシュエントリは生成されません。

キャッシュファイルは/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

それがうまくいかない場合は、バグにぶつかったので、ランチパッドでバグを報告することをお勧めします。

ubuntu-bug apparmor
3
user63370