据我所知,/etc/shadow 的第二个字段是用户的加密密码。但有些用户,例如我的环境(Ubuntu 12.04)中的daemon
用户,在该字段中有。*
root
!
我假设!
它的意思是“所有密码无效,您无法以该用户身份登录。”但我找不到相关文档。
影子文件中的*
“和”是什么意思?!
答案1
“!”和“!!”本质上含义相同,但不同的工具会使用其中一种,passwd -l
例如,使用一对感叹号。usermod -L
而另一方面只使用一个。
通常,带有“*”的帐户从未设置过密码(即始终无法登录)。这与根本没有密码哈希条目的帐户不同,后者不需要密码(通常甚至不会提示输入密码),这几乎总是很糟糕!。
如果它是一个无效的哈希(所有 '*'、'!' 和 '!!' 都是),它会有效地锁定帐户并阻止登录该帐户。通常通过在 /etc/passwd 文件中将帐户的 shell 设置为 /bin/false 或 /sbin/nologin 之类的内容来进一步实现这一点
您经常会发现,如果用户的帐户在之前设置了有效密码后被锁定,则该密码哈希前面会有感叹号,这样当帐户解锁后,密码就会再次恢复使用。