免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7487 | 回复: 11
打印 上一主题 下一主题

linux用户带密码迁移 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-17 22:54 |只看该作者 |倒序浏览
因为要将各系统的用户目录统一到LDAP服务器上,正在做linux用户向LDAP的迁移,用户信息导出都没问题,但是用户的密码导出的是加密后的密文,有没有办法将linux的明文直接导入LDAP服务器呢?

问题的源头:

linux中导出的用户ldif文件中userpassword是密码密文,导入LDAP服务器的也因此是密文。但是LDAP用户从linux登录的时候,linux服务器传递给LDAP用以验证的是用户ID和密码明文,而ldap端存储的是密文,将密码密文与传送过来的密码明文比较,当然不一致,也因此无法登录。


再补充一下,上文说的密码明文指的是 密码原字符串,密文指的是经过加密处理的字符串。

我觉得历史上肯定有人遇到过这个应用场景吧,遇到迁移的事项,要把用户带密码迁移出来。这个问题也许也有其他解决方法,有人有什么想法么?

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-07-11 22:20:00
2 [报告]
发表于 2011-03-18 13:56 |只看该作者
你完全错了。
要比较为何一定要明文比较?
把明文转成密文,密文和密文比较不就可以了?
ldap迁移不会遇到你说的这种问题。你自己先试试就知道了。

论坛徽章:
0
3 [报告]
发表于 2011-03-18 22:12 |只看该作者
本帖最后由 hbsbjerry 于 2011-03-18 22:19 编辑

晕,版主达人,上面是我通过试验测试的结果啊,我都试了三四天了。

测试用例:
(1)创建linux上用户user1,密码111111
(2)用migrate_passwd.pl 工具得到user1的ldif文件
(3)在Tivoli Directory Server(IBM的LDAP服务器)里import ldif(设置TDS对所存储的密码不再次加密,即直接存储ldif文件里userpassord的字符串(经过linux加密处理的user1的密码))
(4)配置linux使用LDAP用户登录
(5)user1在linux端登录失败
(6)从TDS导出ldif文件,确认userpassword不是111111,而是加密后的字符串(见第三条括号内内容)
(7)手动在TDS端修改user1的userpassword值为111111,经导出ldif文件确认TDS存储的密码原文是111111
(8)user1从linux端可以用111111成功登录
(9)user1在linux端通过passwd命令修改密码为222222,logout,再login,无法成功登录

论坛徽章:
0
4 [报告]
发表于 2011-03-18 22:14 |只看该作者
补充实验:
(1)直接在TDS端创建新用户user2 ,userpassword属性直接输入密码值,比如222222。linux端用该用户登录,可以成功登录

(2)在linux端,用passwd user2修改密码为333333,logout后,user2无法使用密码333333成功登录;从TDS端查看,发现TDS存储的是经linux对333333加密处理后的字符串

经过这些实验做出一楼的判断

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-07-11 22:20:00
5 [报告]
发表于 2011-03-19 23:33 |只看该作者
补充实验:
(1)直接在TDS端创建新用户user2 ,userpassword属性直接输入密码值,比如222222。linux端用该 ...
hbsbjerry 发表于 2011-03-18 22:14



        给你两个参考:
1 ldap存储密码是支持加密的
2 不建议你用明文存储密码

附加一个,migrate脚本有一个是用来初始化你存储系统帐户的ldap目录结构的,不知你是否有用上。

论坛徽章:
0
6 [报告]
发表于 2011-03-19 23:47 |只看该作者
本帖最后由 hbsbjerry 于 2011-03-20 00:06 编辑

LDAP存储密码是支持加密的,而且可以选择各种加密算法;但这是是对从ldif导出的userpassword值在存储到LDAP前进行再一次加密,和linux端就没有关系了。我采用明文存储密码只是测试时方便查看LDAP里存储的userpassword值到底是什么。

存储系统帐户初始结构的,这个也没有问题

问题是,从linux导出用户的ldif文件,如
dn: uid=user2,ou=GCL,ou=CSDL,o=XXX,c=cn
loginShell: /bin/bash
memberUid: 901
gidNumber: 801
objectclass: posixGroup
objectclass: top
objectclass: posixAccount
objectclass: shadowAccount
uid: user2
uidNumber: 901
cn: user2
description: One user of system
homeDirectory: /home/user2
userpassword: xxxxxxxxxxx
ownerpropagate: TRUE
entryowner: access-id:UID=user2,OU=GCL,OU=CSDL,O=XXX,C=CN

userpassword这里记录的是用户的密码密文。如果用户的password原文是111111,这里显示的可能就是ABCDE,而存在LDAP里的就是ABCDE(或者被LDAP再加密一道如EDCBA)。这样当user2作为LDAP用户在linux端登录时,linux会将111111传递给LDAP,而LDAP会拿111111与ABCDE进行匹配,匹配不一致,就通过不了验证。

如果只是迁移用户而不在乎其原始密码,或创建新用户就完全没有现在遇到的问题。

从您给的这两个提示来看,我前文对问题的描述可能不够清楚。现在的问题是,我要迁移用户的原有密码

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-07-11 22:20:00
7 [报告]
发表于 2011-03-19 23:58 |只看该作者
回复 6# hbsbjerry


    现在的问题是,我要迁移用户的原有密码
====
很遗憾,默认passwd加密方式不可逆。

论坛徽章:
0
8 [报告]
发表于 2011-03-20 00:06 |只看该作者
这就是最大的杯具。。。貌似这个问题无解了。。。我的方案要流产了。。。

论坛徽章:
0
9 [报告]
发表于 2011-03-20 00:20 |只看该作者
不可逆,淡定淡定吧

论坛徽章:
0
10 [报告]
发表于 2011-03-20 00:36 |只看该作者
郁闷啊,这个问题难道就这么无解了?我的方案啊。。。悲催了,客户就是不同意改动密码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP