ファイルの信頼の管理
信頼データベースを管理して、信頼できるファイルとのfapolicydの同期を維持します。
ファイルの信頼は信頼データベースに格納されます。信頼は、RPMデータベースの情報に基づいて生成することも、ファイル・システムで構成エントリを追加することによって手動で定義することも可能です。信頼データベースの内容および信頼の仕組みの詳細は、「信頼データベースについて」を参照してください。
信頼データベースのリフレッシュ
システム上のファイルがDNFフレームワークの外部で追加または更新された場合は、信頼データベースをリフレッシュします。
sudo fapolicyd-cli --update
信頼ファイル・データベースへのファイルの追加
DNFを使用してインストールされていないファイルをファイル・データベースに手動で追加できます。
findなどのコマンドライン・ツールを使用して、複数のエントリを信頼ファイル・データベースに同時に追加できます。例:
find /home/user/bin/ -type f -exec fapolicyd-cli --file add {} --trust-file trusted_user_bin \;
信頼ファイル・データベースからファイルを削除するには、テキスト・ファイルを直接編集してエントリを削除するか、次を実行します:
sudo fapolicyd-cli --file delete <path_to_file>
信頼ファイル・データベースに変更を加えた後、それらの変更をfapolicydが登録する前に信頼データベースをリフレッシュする必要があります。「信頼データベースのリフレッシュ」を参照してください。
信頼ファイル・データベース内のすべてのエントリは、プレーン・テキスト・ファイルとして/etc/fapolicyd/trust.d/に格納され、必要に応じてテキスト・エディタを使って編集できます。ファイル・サイズまたはハッシュ値を更新する必要がある場合は、「信頼ファイル・データベースの更新」を参照してください。
信頼ファイル・データベースの更新
ファイル信頼データベース内のファイルのサイズまたはハッシュを変更する場合は、ファイル信頼データベースを更新する必要があります。
信頼の不一致の確認
信頼の不一致は、ファイル・システム上のファイルのファイル・サイズまたはSHA-256ハッシュ値が、信頼データベース内のファイルに格納されている情報と一致しなくなった場合に発生します。DNFを使用しないでファイルを変更すると、信頼の不一致が発生する可能性があります。たとえば、rpmコマンドを使用してファイルを直接インストールまたは更新した場合、またはユーザーまたはプロセスがファイルを変更した場合です。
サイズまたはSHA-256ハッシュに基づいてファイル整合性チェック用にfapolicydを構成できますが、システムのデッドロックの可能性が高くなるため、このオプションをグローバルに適用することをお薦めしません。
sudo fapolicyd-cli --check-trustdb
出力には、不一致が発生したファイルと不一致の内容が記載されます。例:
/etc/selinux/targeted/contexts/files/file_contexts miscompares: size sha256
/etc/selinux/targeted/policy/policy.33 miscompares: size sha256
/opt/rh/gcc-toolset-12/root/usr/bin/ld miscompares: size sha256
/usr/lib64/gconv/gconv-modules.cache miscompares: size sha256
...
一部のファイルのサイズまたは内容は、特定のコマンドまたはサービスの実行後にRPMデータベースの値から変化するため、不一致が予想されます。それでも不一致をチェックすると、信頼データベース内に存在する可能性があるが、データベースへの追加後に変更されたファイルを警告できます。
信頼データベースのエントリのリスト
データベースに含まれるデータをダンプすることで、信頼データベース内のすべての情報を表示できます。
sudo fapolicyd-cli -D
出力には、信頼のタイプ、信頼できるファイルへのパス、ファイルのサイズ(バイト)およびファイルのSHA-256ハッシュが表示されます。
grepなどのコマンドライン・ツールを使用して、ダンプ出力で返されるデータを制限できます。例:
sudo fapolicyd-cli -D|grep '/usr/bin/dnf-3'
信頼データベースのリセット
信頼データベースをリセットするには、fapolicydサービスを停止し、データベースを削除します。これはfapolicydの問題をデバッグするのに役立ちます。
fapolicydが正常に機能しなくなり、システム・ロックアウトが発生する可能性があるため、/var/lib/fapolicyd/ディレクトリを直接削除しないでください。