如何在非交互方式下修改密码,上次很多高手给我的建议都不行啊!!!

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,看得一头雾水。

难道就没有方法了?
...全文
231 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingx 2005-02-17
  • 打赏
  • 举报
回复
唉,算了,我自己另想办法吧。
总有人可以给个生成linux加密密码的算法吧,它不是单纯的des,也不是一般的md5
dingx 2005-02-15
  • 打赏
  • 举报
回复
难道这个问题真这么麻烦吗?
有没有什么工具,把用户名/密码写入一个文件,运行程序自动生成加密密码修改shadow的?
或者有谁做过类似的事情吗?
dingx 2005-02-14
  • 打赏
  • 举报
回复
debian的passwd没有--stdin这个参数。我试过管道和重定向了,估计就算用rh的passwd也不太可能有用。
密码要是能固定我何必花这么多时间搞这么复杂呀,密码是用户通过web方式修改的。
ckc 2005-02-14
  • 打赏
  • 举报
回复
debian的passwd没有--stdin参数?家里没有debian了,没办法实验
家里的rh 7.3的passwd是有这个参数的。
你是不是可以拷贝一个rh的passwd用用?
如果你可以设置一个固定密码的话可以用sed什么的修改/etc/shadow文件
把其中的密码改掉就可以了
dingx 2005-02-14
  • 打赏
  • 举报
回复
很不幸,我就打算在开机时自动用root身份启动tomcat,因为我的程序还要调用quota命令获取磁盘限额信息,我试了用root组成员执行quota,出现的时权限不够。

另外我其实还在试验,我也不想用root,这样不安全。

或者有什么方法可以生成一个可以使用的密码,我可以用useradd -p设置
nodummy 2005-02-13
  • 打赏
  • 举报
回复
老兄,难道你的程序一直在root下面运行???

只要你不在root下面运行的话,你还要输入原来的密码的……

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧