我在公司笔记本电脑上安装了 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
为False
和。fallback_homedir
_/home/%u
_/etc/sssd/sssd.conf
重启守护进程:
systemctl restart sssd && systemctl daemon-reload
设置 ITGROUP 以便能够使用 sudo:
echo "%ITGROUP ALL=(ALL) ALL" > /etc/sudoers.d/ITGROUP
一切都运行良好。...直到我在 Windows 10 PC 上更改了密码。事实上,CentOS 盒子让我,只是用旧密码。我做了一堆谷歌搜索并尝试了一堆东西(例如,,sss_cache -E
)kdestroy -A
,但我似乎无法刷新缓存,所以我可以使用我的新密码。
那么,如何在 CentOS 7 上清除用户缓存的 Active Directory 密码?有没有办法让“普通”用户自己做到这一点(如果我们想把它推广到其他系统)?
更新:
我尝试了一些建议,但笔记本电脑不会忘记旧凭据。我最终将 PC 从领域中删除并重新添加。我确实将它添加到我的 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_expiration
and offline_credentials_expiration
from 2
to 4
,但它运行得很好,我们已经开始在我们的服务器上使用这个设置。
通常
sss_cache
应该是告诉 sssd 重新检索它可能已经缓存的对象的正确方法。但是如果无法从 AD 中检索到任何内容,afaik sssd 确实会再次使用缓存的对象。您应该始终能够通过设置来重置缓存的凭据
在 /etc/sssd/sssd.conf 中,重新启动 sssd 服务并重新验证您的用户。这样,您应该能够确定 SSSD/AD 上的身份验证是否有效。要检查完整设置是否使用当前设置(不使用任何缓存),实际删除所有缓存总是一件好事。请参阅底部的信息,了解如何最有效地做到这一点。
我不知道如何安全地实施。恕我直言,这不是你想要的。但无论如何,它不应该是必要的。SSSD 应始终根据某些条件重新评估其缓存的凭据。
大多数情况下,设置以下内容以在几天后强制重新评估并实际注意环境是否出现问题是个好主意
默认
offline_credentials_expiration
设置为0
(无限制)大多数时候,当我想确定没有更多缓存在使用时,我会执行以下操作
这可能导致 sssd 设置无法正常工作(但前提是其设置有问题,因为所有 sssd 保存的数据都可以简单地从 AD 中重新检索)。