11.2.26. SSSD キャッシュの管理

SSSD は、同じタイプのドメインと異なるタイプのドメインを複数定義することができます。SSSD はそれぞれのドメイン用に別々のデータベースファイルを維持できます。これは各ドメインがそれ自身のキャッシュを持っていることを意味します。これらのキャッシュファイルは /var/lib/sss/db/ ディレクトリ内に収納されています。

11.2.26.1. SSSD キャッシュの削除

LDAP アップデートはドメイン用の ID プロバイダーになされるため、新情報を迅速にリロードするためにキャッシュをクリアにする必要があります。
キャッシュ削除ユーティリティの sss_cache は、SSSD キャッシュにあるユーザーやドメイン、グループのレコードを無効にします。最新のレコードを無効にすることで、キャッシュは ID プロバイダーからアップデートされたレコードを強制的に取得するため、変更が迅速に実現できます。

注記

このユーティリティは、sssd パッケージの SSSD に含まれています。
最も一般的には、キャッシュのクリアとドメイン全体のレコードをアップデートするためにこのユーティリティが使われます。

例11.15 ドメインレコードの削除

[root@server ~]# sss_cache -d LDAP1
管理者が特定のレコード (ユーザー、グループ、ネットグループのいずれか) がアップデートされたことを認識している場合、sss_cache はその特定のアカウントのレコードを削除し、キャッシュの残りをそのまま残しておけます。

例11.16 ユーザーレコードの削除

[root@server ~]# sss_cache -u jsmith

表11.12 sss_cache オプション

短い引数 長い引数 詳細
-d name --domain name 特定ドメイン内のユーザーやグループ、他のエントリーのキャッシュエントリーのみを無効にします。
-G --groups グループレコードすべてを無効にします。-g も使われた場合は、-G が優先され、 -g は無視されます。
-g name --group name 特定グループのキャッシュエントリーを無効にします。
-N --netgroups ネットグループのキャッシュレコードすべてを無効にします。-n も使われた場合、-N が優先され -n は無視されます。
-n name --netgroup name 特定ネットグループのキャッシュエントリーを無効にします。
-U --users ユーザーレコードすべてを無効にします。-u も使われた場合、-U が優先され -u は無視されます。
-u name --user name 特定ユーザーのキャッシュエントリーを無効にします。

11.2.26.2. ドメインキャッシュファイルの削除

すべてのキャッシュファイルにはドメイン用の名前があります。例えば、exampleldap と言うドメインには、キャッシュファイル名は cache_exampleldap.ldb となります。
キャッシュファイルを削除する場合は、注意してください。 この操作は重大な影響を及ぼします。
  • キャッシュファイルを削除すると、識別情報とキャッシュされている認証情報の両方でユーザー情報すべてが削除されます。従って、システムがオンラインでドメインのサーバーに対してユーザー名で認証できる状態でない場合は、キャッシュファイルを削除しないでください。認証情報のキャッシュがないと、オフライン認証は失敗します。
  • 異なる識別プロバイダーを参照するように設定が変更された場合、SSSD は、変更前のプロバイダーからのキャッシュされたエントリがタイムアウトになるまで、両方のプロバイダーからのユーザーを認識します。
    キャッシュを排除することでこれを避けることは可能ですが、それより良いオプションとして新規のプロバイダーに異なるドメイン名を使用することができます。SSSD が再開始する際に、新しい名前で新規ファイルが作成されて、古いファイルは無視されます。