想象一下,由旧的crypt crypt DES哈希组成的NIS用户数据库/var/yp/input-files/passwd
。目标是将此数据库迁移到md5或散列哈希。当使用yppasswd
更改密码时,它使用与现有条目相同的算法(可能出于遗留原因)生成,即crypt保留crypt,md5保留md5。NIS yppasswd哈希从crypt到md5的迁移
我们目前的计划是编写一个包装yppasswd的特殊密码更改脚本。有没有更好的方法来告诉yppasswd默认生成md5格式的密码?
想象一下,由旧的crypt crypt DES哈希组成的NIS用户数据库/var/yp/input-files/passwd
。目标是将此数据库迁移到md5或散列哈希。当使用yppasswd
更改密码时,它使用与现有条目相同的算法(可能出于遗留原因)生成,即crypt保留crypt,md5保留md5。NIS yppasswd哈希从crypt到md5的迁移
我们目前的计划是编写一个包装yppasswd的特殊密码更改脚本。有没有更好的方法来告诉yppasswd默认生成md5格式的密码?
我想通了现在:
apt-get source nis
。int has_md5_passwd = 1;
在int main (int argc, char **argv)
yppasswd年初更换int has_md5_passwd = 0;
则始终创建MD5哈希值。
最近的Linux发行版通过PAM支持NIS密码更新,这意味着您可以使用本地passwd
程序而不是yppasswd
。这也意味着您可以配置散列算法,该算法仍然(如yp-tools 2.12)不可能与yppasswd
一起使用。
您的系统应该有一个/etc/pam.d/passwd
文件,要么含有,或者更可能的是,指的是包含一行形式的另一个文件:
password sufficient pam_unix.so md5 nis
第二场可能会有所不同,而有可能是其他参数在最后,但你要加载的password
线pam_unix.so
,它应该至少具有nis
参数以及适用于您的NIS服务器(md5
,sha256
等)
您的分布可能哈希函数HAV尽管如此,更好的配置方式是确保您的更改不会被稍后的自动化过程覆盖。
在RedHat派生系统(至少包括RHEL,CentOS,Scientific Linux和Fedora)上,您至少需要使用authconfig
程序--enablenis
参数。对于MD5哈希值以上的情况下,下面的命令行就足够了:
authconfig --enablenis --usemd5 --update
在Debian系统(也可能是Debian的衍生品,但我不能在此刻检查),要做到这一点似乎有道将/usr/share/pam-configs/unix
复制到别的东西(比如/usr/share/pam-configs/nis
),编辑新文件以给它适当的设置和新的配置文件名称,然后运行pam-auth-update
,禁用“Unix身份验证”配置文件并启用新的配置文件。
这并不完全适用于yp-tools 2.12中的yppasswd。如果你走这条路线,你需要在'main'的顶部设置'int hash_id = MD5;'并注释掉'hash_id = get_hash_id(pwd-> pw_passwd);'后面的行。 – asciiphil 2013-01-25 20:35:30