如果缓存数据存在,LDAP 将不会更新

发布于 2024-07-10 21:19:12 字数 668 浏览 13 评论 0原文

我们有一个 SELinux 客户端,它使用连接到 Active Directory 服务器的 LDAP 对网络用户进行身份验证。 由于我们的机器必须“不受限制”地运行,因此我们必须使用 nscd 来缓存组和密码信息。

问题就在这里。 如果我们更改 Active Directory 服务器上的组信息,然后在客户端上登录,如果该用户存在缓存,则 LDAP 似乎会忽略服务器并仅使用缓存的数据。 我们获得更新的唯一方法是使 passwd 缓存失效。

/etc/nsswitch.conf 的重要部分:

    passwd: file ldap cache
    group:  file ldap cache
    shadow: file ldap cache

谢谢。

更新:发现运行strace getent passwd会在读取/etc/nsswitch.conf之前检查nscd缓存,因此nss的配置并不重要。

更新 2: 今天使用 nss_updatedb 看看它是否有效。 到目前为止,还没有什么乐趣,尽管这个指南看起来正是我们需要做的。

We have an SELinux client that authenticates network users using LDAP connecting to an Active Directory server. Since our machines have to operate "untethered," we have to use nscd to cache group and passwd info.

Here's the issue. If we change group information on the Active Directory server, then log in on the client, if a cache exists for that user, LDAP seems to ignore the server and only use the cached data. The only way we've been able to get an update is to invalidate the passwd cache.

Significant portion of /etc/nsswitch.conf:

    passwd: file ldap cache
    group:  file ldap cache
    shadow: file ldap cache

Thanks.

Update: Figured out running strace getent passwd that nscd cache gets checked before /etc/nsswitch.conf gets read, so the configuration of nss doesn't matter.

Update 2: Playing with nss_updatedb today to see if it will work. So far no joy, although this howto looks like exactly what we need to do.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

北方。的韩爷 2024-07-17 21:19:12

如果您不想缓存活动目录中的结果,那么您需要关闭 nscd 或将其缓存生命周期设置为几分钟(编辑 /etc/nscd.conf)。
我相信 passwd 的默认生存时间是 10 分钟,组的默认生存时间是 1 小时。

If you don't want to cache results from active directory then you need to either turn off nscd or set its cache life time to a few minutes (edit /etc/nscd.conf).
I believe the default time to live is 10 minutes for passwd and and hour for group.

萌︼了一个春 2024-07-17 21:19:12

您可以使用以下命令轻松刷新 nscd 缓存:

sudo nscd -i passwd
sudo nscd -i group

使用给定命令刷新 nscd 缓存后,您将看到更改的 LDAP 数据。

有关更多详细信息,请参阅:http: //sysadmin-notepad.blogspot.rs/2013/05/how-to-flush-nscd-cache-in-linux.html

You can easily flush nscd cache with following commands:

sudo nscd -i passwd
sudo nscd -i group

After flushing nscd cache with given commands you would see changed LDAP data.

For more details see: http://sysadmin-notepad.blogspot.rs/2013/05/how-to-flush-nscd-cache-in-linux.html

十年不长 2024-07-17 21:19:12

我们最终通过使用 nss_updatedb 在本地缓存组和 passwd 数据库解决了这个问题。 然后我们关闭nscd。

我们将 pam_exec 模块添加到 pam.d 列表中,并使用它在身份验证之前运行 nss_updatedb 以确保本地缓存是最新的。

We finally resolved this by using nss_updatedb to cache the group and passwd databases locally. We then turned off nscd.

We added the pam_exec module to the pam.d listing and use it to run nss_updatedb before authentication to make sure the local cache is up to date.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文