重新哈希/etc/shadow。我可以强制NIS用户更改密码吗?

重新哈希/etc/shadow。我可以强制NIS用户更改密码吗?

我目前正在将 CentOS 环境迁移到 Debian 环境。用户使用NIS通过网络登录。我希望/etc/shadow从旧服务器复制到新服务器,以便我们可以为用户提供连续性。我发现它有两个问题:

  • 用户ID冲突通过在 CentOS 文件中的 UID 中添加 500 可以轻松解决这个问题,shadow因为 CentOS 以 500 启动 UID,而 Debian 以 1000 启动 UID。
  • 不同的密码哈希值这就是要我命的原因。看来 CentOS 使用 散列其密码,md5而 Debian 使用sha-512.我希望用户能够登录系统而无需咨询我。

经过一番谷歌搜索后,我发现了一个可接受的解决方案如下:

passwd -d uname
chage -d 0 uname

第一行为用户设置一个空密码,uname以便他们可以直接登录。第二行导致uname的密码过期,因此他们被迫在下次登录时更改密码。我认为这是一个足够好的妥协。

如果用户登录到服务器上,这一切都很好。如果用户尝试从不同的机器进行 NIS 身份验证,则该方法不起作用。他们仍然收到“需要更改密码”的消息,但紧接着是“身份验证令牌操作错误”;我猜测,这是因为密码更改是通过passwd而不是尝试更改的yppasswd。这就是我目前面临的困境。如何实现连续性而不尴尬地强迫用户首先登录服务器?


编辑

  • 和我说的很相似;但它没有提到 NIS。
  • 似乎表明这实际上是不可能的。有人能反驳或证实吗?

编辑2 我刚刚注意到,当用户尝试登录服务器时,他们可以正常登录,而不会出现错误消息。在另一个机器上(为了测试 NIS),我切换到 root,然后尝试su进入其中一个 NIS 用户。它成功了,同时给我一个警告,说“身份验证失败(忽略)”。我猜这来自 PAM 策略链。

答案1

这根本不是重新哈希密码的问题。我所需要的只是修改我的旧密码/etc/group,使其组 ID 以 1000 开头,并且用户可以使用旧密码轻松登录,正如一些评论者所猜测的那样。

相关内容