如何在非交互方式下修改密码,上次很多高手给我的建议都不行啊!!!
dingx 2005-02-13 05:23:27 我在做一个项目,其中要让LINUX的用户和系统中几个WEB的系统用户同步,我基本实现了这个功能,但是在建立LINUX用户时密码给我带来了很大的麻烦,我用JAVA调用useradd -p 密码 Username建立密码,但写到shadow中的就是-p后的内容,而不是加密的密码,我试图自己MD5加密,但发现和系统的加密结果有很大出入,根本不能用。因为passwd有交互过程,JAVA的Runtime类执行系统命令总是有问题,所以请问有什么办法可以靠1条或者多条命令在非交互的情况下改变用户密码,或者建立新用户时直接赋予密码,使之能够正常登陆。
我还尝试过了一下方法,无一成功:
重定向passwd tester1 < file
file内容
123
123
管道
echo -e "123\n123" | passwd tester1
上两种返回错误信息是密码不匹配
有人建议用crypt生成密码,debian下没有这个命令,man crypt的结果是这是一个c的函数,我用的是Java,我看了webmin的perl代码,它直接调用了crypt(password, salt),我把它拉了出来,但不能运行,我不懂perl,看得一头雾水。
难道就没有方法了?