解凍された squashfs ファイルシステムで SELinux ファイルシステムのラベルを再設定するにはどうすればよいですか?

解凍された squashfs ファイルシステムで SELinux ファイルシステムのラベルを再設定するにはどうすればよいですか?

ライブブート Debian システム用に selinux を設定しようとしています。

SELinux は、ビルドおよびシステム構成中に大量の変更が加えられたため動作不能であり、ファイルシステム全体のラベルを変更する必要があります。これは、chroot または systemd-nspawn 内から、またはホスト システムから、ファイルシステムを解凍された squashfs ファイルとしてビルド時に実行する必要があります。

これを正常に達成する方法はまだ見つかっていません。/etc/selinux/default/contexts/files/file_contexts.subs_dist ファイルは、ファイルシステムの場所の背後にあるファイルシステム ターゲットをエイリアスすることになっていますが、これを使用して、SELinux の再ラベル付け中にホスト ファイルシステムを展開された squash システムにリダイレクトする試みは機能しませんでした。SELinux はホスト ファイルシステムの再ラベル付けを継続し、squashfs ファイルシステムは不明なファイルタイプとして引用されました。

squashfs で SELinux のファイルシステムにラベルを再設定する簡単な方法はありますか?

答え1

現在、この問題に対する既知の解決策は見つかりませんでしたが、書き込み可能な解凍された squashfs 内またはその上で SELinux を操作することは可能であると確信しています。

それ以外の場合、ライブ ビルド ソリューションの 1 つは、この段階では isolinux を使用せず、したがって squashfs や iso を使用せずに、debootstrap を使用して手動でビルドし、カーネルとパッケージを追加し、この書き込み可能な Debian を USB キーで起動するか、仮想ゲストで起動し、ファイルシステムの SELinux 再ラベル付けを実行することです。これが完了すると、ビルド プロセスを isolinux から squashfs、iso、および通常の書き込み不可能なハイブリッド システムに続行できます。

書き込み可能なメソッドの概要は次のとおりです。

https://vdmit.org/linux/debian-live-usb-debootstrap.html

有利な、書き込み不可能なハイブリッド手動ビルド (Debian ライブビルド スクリプトで自動化を試みる手動の方法) の概要は次のとおりです。

https://l3net.wordpress.com/2013/09/21/how-to-build-a-debian-livecd/

この方法の唯一の欠点は、ラベル付けを正しく行うために、ブート可能なハイブリッド システムと同様に、debootstrap 段階で完全な構成が存在している必要があることと、解凍された squash を再ラベル付けする方法が引き続き存在しないことです。ビルド後に squashfs を編集する必要がある場合があるため、これは受け入れられないと思います。

もちろん、config-hooks でインポートされた追加のオブジェクトには、適切なコンテキスト、カスタム コンテキスト、または起動後にラベル付けされた許容コンテキストが必要ですが、これは RAM の消費量が少ない小さなタスクです。

そうでなければ、これはまだ未解決の問題です。

関連情報