/etc/shadow 的第二个字段中的 * 和 ! 是什么意思?

/etc/shadow 的第二个字段中的 * 和 ! 是什么意思?

据我所知,/etc/shadow 的第二个字段是用户的加密密码。但有些用户,例如我的环境(Ubuntu 12.04)中的daemon用户,在该字段中有。*root!

我假设!它的意思是“所有密码无效,您无法以该用户身份登录。”但我找不到相关文档。

影子文件中的*“和”是什么意思?!

答案1

“!”和“!!”本质上含义相同,但不同的工具会使用其中一种,passwd -l例如,使用一对感叹号。usermod -L而另一方面只使用一个。

通常,带有“*”的帐户从未设置过密码(即始终无法登录)。这与根本没有密码哈希条目的帐户不同,后者不需要密码(通常甚至不会提示输入密码),这几乎总是很糟糕!。

如果它是一个无效的哈希(所有 '*'、'!' 和 '!!' 都是),它会有效地锁定帐户并阻止登录该帐户。通常通过在 /etc/passwd 文件中将帐户的 shell 设置为 /bin/false 或 /sbin/nologin 之类的内容来进一步实现这一点

您经常会发现,如果用户的帐户在之前设置了有效密码后被锁定,则该密码哈希前面会有感叹号,这样当帐户解锁后,密码就会再次恢复使用。

相关内容