/etc/passwd 更新不起作用

/etc/passwd 更新不起作用

在我使用的一台机器中,我看到了一种奇怪的行为。我已经手动更改了 /etc/passwd 中一个用户的 shell,但是当我尝试使用该用户登录时,它仍然使用旧的 shell。 getent 还显示旧的。但 /etc/passwd 文件上的 grep 确认我正确保存了该文件。

(在 Linux 上)是否有任何类型的 /etc/passwd 缓存?

如何避免呢?

答案1

你有一个名为 running 的进程吗nscd?这就是名称服务缓存守护进程。

如果它正在运行,您可能需要运行sudo nscd -i passwd来告诉它应该忘记任何缓存的/etc/passwd文件数据。它还有其他缓存:它们各自的关键字是grouphostsservicesnetgroup

它更常与基于 LDAP/AD/NIS 的身份验证方案一起使用,但如果您正在运行某些进行大量用户/组/服务/主机文件查找的进程,则可能会提高系统性能。或者,如果您安装了一些实际上并未使用的服务(可能只使用其中的一小部分),则某些服务可能已nscd作为依赖项引入。

相关内容