更改密码时,如何让一个 PAM 模块检查旧密码,而另一个模块保存新密码?

更改密码时,如何让一个 PAM 模块检查旧密码,而另一个模块保存新密码?

我们的服务器目前使用 blowfish 密码来存储密码,它使用pam_unix2。我们希望逐步切换到 SHA。我们的想法是,所有新更改的密码都将使用 SHA 进行哈希处理。但我不知道如何为此配置 PAM,即common-password。如果我使用pam_unix2,它无法使用 SHA 保存新密码。如果我使用pam_unix,它无法验证旧的、混杂的密码。有没有办法用一个模块验证旧密码,用另一个模块设置新密码?

答案1

这取决于password界面是否检查当前密码,或者是否由正常界面执行此操作auth。我怀疑是后者,因为 root 可以在不提供用户以前的密码的情况下设置其他用户的密码,在这种情况下,您应该能够执行以下操作:

# Accept authentication with either Blowfish or SHA512
auth        sufficient      pam_unix2.so
auth        sufficient      pam_unix.so

# Set new passwords only with SHA512
password    required        pam_unix.so sha512

相关内容