在我工作的机器中,我看到了一种奇怪的行为。我在/etc/passwd中手动更改了一个用户的shell,但是当我尝试与该用户登录时,它仍然使用旧的。还展示了旧的那个。但是/etc/passwd文件上的grep确认我正确地保存了该文件。
(在Linux上)有任何类型的/etc/passwd缓存吗?
如何避免呢?
发布于 2018-03-11 14:00:39
您有一个名为nscd的进程正在运行吗?这是名称服务缓存守护进程。
如果它正在运行,您可能需要运行sudo nscd -i passwd来告诉它它应该忘记任何缓存的/etc/passwd文件数据。它还有其他缓存:它们各自的关键字是group、hosts、services和netgroup。
它更常用于基于LDAP/AD/NIS的身份验证方案,但是如果您正在运行一些进程来进行大量的用户/组/服务/主机文件查找,则可能会提高系统性能。或者,如果您已经安装了一些您实际上没有使用的服务(可能只使用其中的一小部分),一些服务可能会将nscd作为依赖项。
https://unix.stackexchange.com/questions/338256
复制相似问题