3 ファイルの信頼の管理

ファイルの信頼は信頼データベースに格納されます。信頼は、RPMデータベースの情報に基づいて生成することも、ファイル・システムで構成エントリを追加することによって手動で定義することもできます。信頼データベースの内容および信頼の仕組みの詳細は、「信頼データベースについて」を参照してください。

信頼データベースのリフレッシュ

システム上のファイルがDNFフレームワークの外部で追加または更新された場合は、信頼データベースをリフレッシュします。

fapolicyd信頼データベースを手動でリフレッシュするには、次を実行します:
sudo fapolicyd-cli --update

信頼ファイル・データベースへのファイルの追加

DNFを使用してインストールされていないファイルをファイル・データベースに手動で追加できます。

信頼ファイル・データベースにファイルを追加するには、次を実行します:

sudo fapolicyd-cli --file add <path_to_file> --trust-file trust_entry

ファイルがまだ信頼データベースに存在しない場合、コマンドは/etc/fapolicyd/trust.d/<trust_entry>にエントリを作成して、ファイルを信頼ファイル構成に追加します。

たとえば、/home/user/demo.bin/etc/fapolicyd/trust.d/demoに追加するには、次を実行します:

sudo fapolicyd-cli --file add /home/user/demo.bin --trust-file demo

ヒント:

findなどのコマンドライン・ツールを使用して、多数のエントリを信頼ファイル・データベースに同時に追加できます。次に例を示します:
find /home/user/bin/ -type f -exec fapolicyd-cli --file add {} --trust-file trusted_user_bin \;

信頼ファイル・データベース内のすべてのエントリは、プレーン・テキスト・ファイルとして/etc/fapolicyd/trust.d/に格納され、必要に応じてテキスト・エディタを使用して編集できます。ファイル・サイズまたはハッシュ値を更新する必要がある場合は、「信頼ファイル・データベースの更新」を参照してください。

信頼ファイル・データベースからファイルを削除するには、テキスト・ファイルを直接編集してエントリを削除するか、次を実行します:

sudo fapolicyd-cli --file delete <path_to_file>

重要:

信頼ファイル・データベースに変更を加えた後、信頼データベースをリフレッシュしてfapolicydに変更を記録する必要があります。「信頼データベースのリフレッシュ」を参照してください。

信頼ファイル・データベースの更新

信頼ファイル・データベース内のすべてのファイルのファイル・サイズまたはハッシュの変更について信頼ファイル・データベースを更新するには、次を実行します:

fapolicyd-cli -f update

ファイルへのパスを指定すると、そのファイルの値のみがデータベースで更新されます。

信頼ファイル・データベースに変更を加えた後、信頼データベースをリフレッシュしてfapolicydに変更を記録する必要があります。「信頼データベースのリフレッシュ」を参照してください。

信頼の不一致の確認

信頼の不一致は、ファイル・システム上のファイルのファイル・サイズまたは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で問題をデバッグするときにデータベースを削除します。

信頼データベースをリセットするには、次を実行します:
sudo systemctl stop fapolicyd
sudo fapolicyd-cli --delete-db

信頼データベースが完全に削除され、次にfapolicydサービスを起動したときに作成および更新されます。

/var/lib/fapolicyd/ディレクトリを直接削除しないでください。これにより、fapolicydが正しく機能しなくなり、システム・ロックアウトが発生する可能性があります。