AppArmor:アプリケーション(Firefox、Thunderbird)ごとに複数のプロファイルを持つことはできますか?通事論?

AppArmor:アプリケーション(Firefox、Thunderbird)ごとに複数のプロファイルを持つことはできますか?通事論?

単一の Firefox インストールで複数のプロファイルを実行する場合、各 Firefox プロファイルに対して AppArmor プロファイルを作成する方法はありますか?あるいは、より一般的には、Thunderbirdなどの複数のプロファイルをサポートするすべてのアプリケーションの場合です。通常、これらのアプリケーションに対して私が見つけたすべてのAppArmorプロファイルには、欠落していない限り、アプリケーション全体が含まれています。

通常、コマンドライン引数を使用してFirefoxまたはThunderbirdを実行して別のプロファイルを指定します。ただし、AppArmor構成ファイルの構文にアプリケーション・パラメーターと一致する項目が見つかりません。

私はlibvirtが各仮想マシンに対してAppArmorプロファイルを作成してこれを行うことを知っているので、いくつかの方法が必要です。

答え1

AppArmorは実行可能ファイルを介して実行されます。 Firefoxが別のプロファイルをロードしたことを確認できないため、別のAppArmorプロファイルを使用する必要があります。

AppArmorはサポートしていますルールを変える、これはアプリケーションを許可します。適用される構成ファイルを変更します。。意図されたユースケースは、アプリケーションが初期化を完了し、この特定のインスタンスからアクセスする必要がある項目を決定した後、より制限の厳しいプロファイルに切り替えることを許可することです。したがって、FirefoxがAppArmorを認識している場合は、ルールを指定してchange_profile実行するプロファイルを決定して変換を適用できます。私が知っている限り、これはまだ行われていません。

プログラミングは必要ありません。実行可能ファイルの複数のコピーまたはハードリンクを作成し、各ファイルに対して異なる設定ファイルを定義するだけですfirefox-bin。 AppArmorは実行可能ファイルへのパスに基づいているため、他のハードリンクで同じパスを使用する必要はありません。 inodeベースのSELinuxとは異なる設定ファイルです。これにはルートが必要で不便なため、プロファイル変更機能がAppArmorに追加されました。

答え2

わかりませんが、私が理解したところによると、いいえ。

衣類は異なるものを区別することができます。

  • アプリケーション
  • ファイルシステムパス
  • ユーザーグループ

さまざまなアプリケーションプロファイルに対して異なる服装アクションを持つには、各衣服アクションごとに異なるユーザーを作成する必要があります。

Androidサンドボックスと同様に、すべてのアプリは異なる「ユーザー」の下にあります。

答え3

利用できるローカルファイルまたは別のプロフィールまたは名前空間

ローカル構成ファイルは次のように定義されます。

profile /usr/bin/firefox//some-name {
}

リンクされていないプロファイルは次のように定義されます。

profile Some.name {
}

名前空間構成ファイルは、次のように定義されます。

profile :some-namespace:/usr/bin/firefox {
}

非標準プロファイルをプロセスに帰属させることは、プロセス自体(すでに答えたように)を介して、またはsystemd(サービス単位で定義する属性)のchange_profile助けを借りて達成できます。AppArmorProfile=

答え4

とても簡単です、友達。 firefox-(putProfileNameHere) というハードリンクを作成します。

cd /data/usr/lib/firefox/
sudo ln firefox /usr/bin/firefox-default
sudo ln firefox /usr/bin/firefox-1b58iygj
#etc etc etc

複数の App Armor プロファイルを作成します。

cd /etc/apparmor.d
cp usr.bin.firefox usr.bin.firefox-default
cp usr.bin.firefox usr.bin.firefox-1b58iygj
#etc etc etc

必要に応じて各構成ファイルを変更します。

/usr//share/applicationsに別の.desktopファイルを作成します(またはAlacarteやKDEなどのメニューマネージャを使用してください)??)カスタムバイナリ+関連設定ファイルを実行します。

firefox-default 
firefox-1b58iygj --profile /home/<yourUserID>/.mozilla/firefox/1b58iygj
#etc etc etc

楽しくお過ごしください。

関連情報