AppArmorのバグにより、AAの削除、AAの回復、またはAptを使用した新しいアプリのインストールがブロックされます。

AppArmorのバグにより、AAの削除、AAの回復、またはAptを使用した新しいアプリのインストールがブロックされます。

AppArmorが私のシステムに問題を引き起こしています。 AppArmorが実行を妨げるので、無効にしました。新しいaptアプリケーションをインストールできません。とにかく試してみると…

E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.

コマンドを実行すると、次の結果が表示されます。

Reloading AppArmor profiles

再起動するまでそのまま残ります。 AppArmorを削除しようとすると、同様のメッセージが表示されます。これにより、新しいアプリケーションを追加したり既存のアプリケーションをアップグレードしたりできなくなります。

LSB-RELEASEから:

DISTRIB_ID=neon
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="KDE neon 5.27"

この問題を解決するにはどうすればよいですか?

ベストアンサー1

実際にAppArmorを無効にするのは少し面倒ですが、手順を実行する順序を知っていれば特に難しくありません。キーは実際にはユーザー空間にはまったく存在しませんが、カーネルコマンドラインパラメータ、特にlsm=アクティブ化と優先順位を制御する値から発生します。Linuxセキュリティモジュール

まずcat /sys/kernel/security/lsm、端末でコマンドを実行して、カーネルがロードしているモジュールの参照点を取得します。これにより、次の内容が報告されることがありますlockdown,capability,landlock,yama,apparmor。これで、パラメータからAppArmor LSMを削除して、再起動用にシステムを準備します。 AppArmorが欠落しているからです1sm=

  1. aa-statusどのAAプロファイルが有効になっているかを確認するには、tpの出力を見てください。

  2. 問題sudo aa-teardown、これはアクティブとして報告されたすべてのプロファイルを削除します。aa-status逆アセンブリプロセスが終了したら、もう一度呼び出して成功を確認します。

  3. システム起動時にAppArmorデーモンをロードしないようにサービス管理者に指示してください。モジュールがロードされないようにカーネルコマンドラインを変更すると、必然的に失敗します。最近はほとんどSystemDを使用しているようですが...

    sudo systemctl stop apparmor.service
    sudo systemctl disable apparmor.service
    

    sudo systemctl mask apparmor.service実行を防ぐだけでなく、すべてのコマンドを防止する2番目のコマンド(個人的な好み)を自由に使用することもできます。その他サービスは、自分がシステムに存在するかどうかはわかりません。または、rc.dを引き続き使用している場合は、このシーケンスも操作を実行します。

    sudo invoke-rc.d apparmor stop
    sudo update-rc.d -f apparmor remove
    
  4. 実行中のシステムですぐにブートローダー構成を変更するか、ブート中にブートプロセスを中止し、ブートローダーインターフェースを介して現在のデフォルトカーネルコマンドラインを編集するかを決定します。とにかく、ここで魔法が起こります。まず、次のようapparmor=0に追加します。最初の引数カーネルコマンドラインから指定された場所に移動し、lsm=このプロセスの開始時に見たコンマ区切りリストから削除します。apparmor現在のカーネルパラメータがlsm=どこにも指定されていない場合(したがってコンパイルされたカーネルのデフォルト値に依存する場合)、必要な場所に自由に挿入してください。場所は影響しません。

    明確に言えば、前のコマンドの出力がシステムに似ているcat場合lockdown,capability,landlock,yama,apparmorlsm=lockdown,capability,landlock,yamaapparmor=0

これで、システムが起動すると空lsmod | grep apparmorの出力がps aux | grep -v grep | grep apparmor表示され、完全に無効になっていることを確認できます。これにより、パッケージ管理タスクを正常に完了して再開できるようになります。

おすすめ記事