将 /etc/shadow 中的 md5 密码修复为 sha512 密码

将 /etc/shadow 中的 md5 密码修复为 sha512 密码

我最近将一个拥有许多用户的 ubuntu 服务器从 2008 年的版本升级到了较新的版本。该服务器以前使用 md5 密码哈希(例如,影子密码以 $1$ 开头),现在配置为使用 sha512。

我更愿意继续使用 sha512,但希望老用户能够使用旧密码部分登录一次,然后被迫更新密码(即使是相同的密码)以生成 sha512。目前,/etc/shadow 中基于 md5 的旧密码根本不允许用户登录(而且看起来是错误的密码)。

似乎很多人以前都应该这样做;但我看不懂如何做,查看了 /etc/pam.d/common-password 和 /etc/login.defs 等常用位置。此外,用户将通过 ssh 登录;我没有每个人的联系信息(电子邮件或其他);有些人很少登录。

有什么帮助吗?(谷歌搜索似乎没有给出任何好的解决方案)。

答案1

理论上它应该是这样的:用户应该能够使用他们的 MD5 密码登录,并且每当他们更改密码时,他们都会得到一个 SHA512 密码。

很难判断为什么人们无法使用 MD5 密码登录。使用 SHA512 密码进行身份验证有效吗?如果您暂时更改为 MD5 并更改测试用户的密码,那么您可以为他登录吗?也许您可以发布 /etc/pam.d/common-auth 非注释行供您查看。当然,日志文件可能有一些背景信息。

为了要求人们更改密码,您可以在 /etc/shadow 中将上次更改日期设置为 0。例如,对于用户 foobar

sudo chage -d 0 foobar

相关内容