CentOS 7でユーザーのキャッシュされたActive Directoryパスワードを消去する方法は?

CentOS 7でユーザーのキャッシュされたActive Directoryパスワードを消去する方法は?

会社のノートブックにCentOS 7をインストールし、次のように会社のADサーバーに認証するように設定しました。

  • インストールパッケージ:

    yum install sssd realmd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation openldap-clients policycoreutils-python
    
  • にADサーバーを追加します/etc/hosts

  • 結合フィールド:

    realm join --user=tech adserver.example.com
    realm permit -g activedirectorygroup@domain
    
  • use_fully_qualified_namesに変更します。Falsefallback_homedir/home/%u/etc/sssd/sssd.conf

  • デーモンを再起動します。

    systemctl restart sssd && systemctl daemon-reload
    
  • sudoを使用できるようにITGROUPを設定します。

    echo "%ITGROUP  ALL=(ALL)  ALL" > /etc/sudoers.d/ITGROUP
    

すべてがうまくいきます。 ...Windows 10 PCでパスワードを変更するまでです。実際、CentOSボックスを使用すると可能ですが、古いパスワード。私は多くのインターネット検索をしていて、多くのことを試しました(例sss_cache -E:)が、kdestroy -A私のキャッシュを使用できるようにキャッシュを更新できないようです。新しいパスワード。

それでは、CentOS 7でユーザーのキャッシュされたActive Directoryパスワードを消去する方法は? 「一般」ユーザーが自分でこれを行う方法はありますか(これを他のシステムに一般化したい場合)。

修正する:

いくつかの提案を試しましたが、ラップトップは以前の資格情報を忘れません。最後に、ゾーンからコンピュータを削除して再度追加しました。私はこれを私のsssd.confに追加しました:

[sssd]
...
account_cache_expiration = 2
cached_auth_timeout = 3600
refresh_expired_interval = 4050

[pam]
reconnection_retries = 3
offline_credentials_expiration = 2

ログインはADコンテンツをキャッシュしているようですが、Authenticated with cached credentials, your cached password will expire at:今度はログインしたりsudoしたりすると通知されます。次に、パスワードが期限切れになり、パスワードを変更したときにシステムがそれを認識できることを願っています。ちなみに、私の全体構成は次のとおりです。

[sssd]
domains = adserver.example.com
config_file_version = 2
services = nss, pam

[domain/adserver.example.com]
ad_domain = adserver.example.com
krb5_realm = adserver.example.com
realmd_tags = manages-system joined-with-samba 
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = False
fallback_homedir = /home/%u
access_provider = simple
simple_allow_groups = [email protected]
account_cache_expiration = 2
cached_auth_timeout = 3600
refresh_expired_interval = 4050

[pam]
reconnection_retries = 3
offline_credentials_expiration = 2

アップデート#2:

私はしばらくこの構成を使用してきました。account_cache_expirationoffline_credentials_expirationをから増やしましたが、正常に動作しており、サーバーでこの設定を使用し始めました。24

答え1

それでは、CentOS 7でユーザーのキャッシュされたActive Directoryパスワードを消去する方法は?

これは通常、sss_cachesssdにキャッシュした可能性があるオブジェクトを取得するように指示する正しい方法です。ただし、ADで何も取得できない場合、sssdはキャッシュされたオブジェクトを再利用します。

常に設定でキャッシュされた資格情報をリセットできる必要があります。

[domain/your-domain.tld]
...
cache_credentials = False

/etc/sssd/sssd.confでsssdサービスを再起動し、ユーザーを再認証します。これにより、SSSD / ADの認証が有効であることを確認できます。設定全体が現在の設定に対して機能しているか(キャッシュを使用せずに)確認するのは実際には常に良いことです。削除すべてのキャッシュ。これを最も効果的に行う方法については、下部の情報をご覧ください。

「一般」ユーザーが自分でこれを行う方法はありますか(これを他のシステムに一般化したい場合)。

これを安全に実装する方法がわかりません。 IMHO、これはあなたが望むものではありません。しかし、とにかくこれは必要ありません。 SSSDは常に特定の条件に従ってキャッシュされた資格情報を再評価する必要があります。

ほとんどの場合、数日後に強制的に再評価を実行し、実際に環境に問題がないかどうかを確認するには、次の設定をお勧めします。

[pam]
...
offline_credentials_expiration

デフォルトoffline_credentials_expiration0(無制限)


ほとんどの場合、使用されているキャッシュがないことを確認するには、次の手順を実行します。

systemctl stop sssd
rm /var/lib/sssd/db/*
systemctl start sssd

これにより、sssd設定が正しく機能しなくなる可能性があります(ただし、sssdに保存されているすべてのデータをADから再度取得できるため、設定に問題がある場合のみ)。

関連情報