* 和 ! 在 /etc/shadow 的第二个字段?

iro*_*and 22 passwords ubuntu-12.04

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

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

这是什么均值*!阴影文件?

Sir*_*rex 26

'!和 '!!' 意思基本相同,但不同的工具使用一个或另一个,passwd -l例如,使用一对感叹号。usermod -L另一方面只使用一个。

通常,带有“*”的帐户从来没有密码(例如,一直被禁用登录)。这与根本没有密码哈希条目的帐户不同,在这种情况下,不需要密码(通常甚至不会提示输入),这几乎总是不好的!。

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

您经常会发现,如果用户的帐户在之前设置了有效密码后被锁定,则该密码哈希的前缀为感叹号,因此当帐户解锁时,密码将再次恢复工作。

  • 没问题。我忘记提及(但确实暗示)的一件事是小心使用 passwd 锁定帐户并尝试使用 usermod 解锁它。它只会删除第一个“!”,这是行不通的。 (2认同)
  • 答案并非 100% 正确。根据我的经验,如果您在该列中有星号 `*`,您仍然可以使用公钥身份验证完美登录。而`!` 确实会阻止该用户的所有登录。 (2认同)
  • 这取决于 sshd 配置文件中“usepam”的设置。http://arlimus.github.io/articles/usepam/ (2认同)