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


20

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

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

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

Answers:


23

'!' 和'!!' 表示本质上是同一件事,但是不同的工具使用一个或另一个,passwd -l例如,使用一对感叹号。usermod -L另一方面只使用一个。

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

如果它是无效的哈希(“ *”,“!”和“ !!”的全部都是),它将有效地锁定该帐户并阻止登录该帐户。通常,通过将帐户的Shell设置为/ etc / passwd文件中的/ bin / false或/ sbin / nologin之类的方法,可以进一步实现此目的

您通常会发现,如果用户的帐户在先前设置了有效的密码之后被锁定,则该密码哈希中会带有感叹号,因此在解锁该帐户后,密码将恢复正常工作。


感谢您的详细说明。这非常有帮助!
ironsand

2
没问题。我忘记提及(但确实暗示)的一件事是要小心使用passwd锁定帐户,并尝试使用usermod对其进行解锁。它只会删除第一个“!”,这将不起作用。
Sirex 2013年

2
答案不是100%正确。根据我的经验,如果您*在该列中有一个星号,仍然可以使用公钥身份验证完美登录。而a !确实会阻止该用户的所有登录。
MichaelHärtl'17

2
这取决于sshd配置文件中“ usepam”的设置。arlimus.github.io/articles/usepam
Sirex
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.