NIS yppasswd哈希从crypt迁移到md5

问题描述

|| 想象一个由旧的crypt DES哈希组成的NIS用户数据库“ 0”。目的是将该数据库迁移到md5或sha哈希。当使用
yppasswd
更改密码时,使用与现有条目相同的算法生成密码(可能是出于遗留原因),即crypt保持为crypt,md5保持为md5。 我们当前的计划是编写一个包装yppasswd的特殊密码更改脚本。是否有一种更优雅的方法告诉yppasswd认以md5格式生成更改的密码?     

解决方法

我现在想通了: 下载您发行版的nis软件包,例如De2ѭ在Debian下。 编辑相应的yp-tools-2.9 / src / yppasswd.c 在
int main (int argc,char **argv)
的开头将
int has_md5_passwd = 0;
替换为
int has_md5_passwd = 1;
然后yppasswd总是创建md5哈希。     ,最新的Linux发行版通过PAM支持NIS密码更新,这意味着您可以使用本地
passwd
程序代替
yppasswd
。这也意味着您可以配置哈希算法,而
yppasswd
仍然无法实现(从yp-tools 2.12开始)。 您的系统应该有一个“ 9”文件,该文件将包含或更可能是引用另一个包含以下形式的文件的文件:
password  sufficient  pam_unix.so md5 nis
第二个字段可能有所不同,并且结尾可能还有其他参数,但是您希望加载
pam_unix.so
password
行,并且至少应具有
nis
参数以及适合您的NIS服务器的哈希函数(
md5
sha256
,等等。) 不过,您的发行版可能有更好的配置方法,因此请确保以后所做的更改不会被自动化过程覆盖。 在RedHat派生的系统(至少包括RHEL,CentOS,Scientific Linux和Fedora)上,您需要至少使用带有
--enablenis
参数的
authconfig
程序。对于带有MD5哈希的上述情况,以下命令行就足够了:
authconfig --enablenis --usemd5 --update
在Debian系统上(可能还有Debian衍生产品,但我目前无法检查),执行此操作的正确方法似乎是将
/usr/share/pam-configs/unix
复制到其他内容(例如
/usr/share/pam-configs/nis
),编辑新文件以使其适当设置和新的配置文件名称,然后运行
pam-auth-update
,禁用“ Unix认证”配置文件并启用新的配置文件。