尝试locking密码,但在/ etc / shadow中没有条目

目标:

维护一个以前的同事系统,我想locking所有的密码login,以便只允许SSH密钥login。

相关信息:

问题:

/etc/shadow只显示了其中的一半。 用passwd -l username密码锁住他们的密码。 现在我想看到其他用户的条目,并且他们的密码也被locking了。

试用:

为“失踪”用户之一做了passwd -l username ,系统给我passwd: Success 。 但是我仍然看不到这个用户的影子。 有任何想法吗?

testing更多

如果操作系统不知道密码哈希,失效等数据,那么确定的testing是:

 getent shadow thatuser 

如果操作系统可以通过任何方式获得这些数据(ldap或者其他),那么就有一个非空的输出行:

 getent shadow thatuser thatuser:x::::::: 

如果我使用文本编辑器从/etc/shadow删除一行,则不会有输出。

locking密码

无论是否存在阴影线,您build议的密码locking效果都很好。 不存在的阴影线意味着用户无法使用密码login。

重新填充阴影

以前的pipe理员可能通过手动编辑/etc/passwd创build了一些用户。 它看起来很丑,但这不是一个错误; 操作系统被devise来处理。 重新填充阴影的一个快速方法是循环所有passwd条目这些命令:

 chage -m 0 thatuser 

这将创build缺less的/etc/shadow行,只需login:x::0::::: 。 副作用是所有现有的/etc/shadow行都会将“连续更改密码之间的最less天数”重置为零 。 但这不是一个经常使用的设置,你可能知道如果你需要它(公司政策等)。

我认为你应该能够禁止所有的密码login,并且只允许在系统上通过在全局sshconfiguration(通常在/ etc / ssh / sshd_config)中设置下面的configuration参数来进行基于密钥的身份validation:

 PubkeyAuthentication yes PasswordAuthentication no 

configuration文件发生任何更改后,您将需要重新加载sshd服务。