问题描述
||
想象一个由旧的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认证”配置文件并启用新的配置文件。