免费注册 查看新帖 |

Chinaunix

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

怎样用非交互方式改变登录用户密码??  关闭 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-05-16 10:30 |只看该作者 |倒序浏览
用SHELL编写改变登录用户密码,
用户名、旧密码、新密码用重定向输入????
急得像热锅上的蚂蚁   

论坛徽章:
0
2 [报告]
发表于 2002-05-16 10:34 |只看该作者

怎样用非交互方式改变登录用户密码??

从文件里读出数据,放进SHELL中

论坛徽章:
0
3 [报告]
发表于 2002-05-16 11:09 |只看该作者

怎样用非交互方式改变登录用户密码??

[这个贴子最后由valentine在 2002/05/16 11:10am 编辑]

使用expect,(需要安装expect和tcl)。
#!/usr/local/bin/expect -f
set username $env(UNAME)
set password $env(UPASS)

spawn passwd $username
expect "New password:"
send "$password\r"
expect "Re-enter new password:"
send "$password\r"
send "exit\r"
expect eof

还可以用一个叫pty的工具,也需要下载安装。
#!/bin/sh
        /etc/mknod out.$$ p; exec 2>&1
        ( exec 4<out.$$; rm -f out.$$
        <&amp;4 waitfor 'password:'
            echo &quot;$2&quot;
        <&amp;4 waitfor 'password:'
            echo &quot;$2&quot;
        <&amp;4 cat >/dev/null
        ) | ( pty passwd &quot;$1&quot; >out.$$ )
        rm -f out.$$

纯shell的不行。用sleep加管道也不行。

论坛徽章:
0
4 [报告]
发表于 2002-05-16 11:28 |只看该作者

怎样用非交互方式改变登录用户密码??

使用如下的.c编译生成mypass可以代替passwd命令,配合awk之类工具,把它生成的结果写到shadow里(有的系统是是在passwd里),便可以了。
两位的salt可以随便生成。

#include <stdio.h>
#include <string.h>
main(argc,argv)
int argc;
char *argv[];
{
  char line[512],salt[3];
  int i,l;
  salt[2]='\0';
  if(argc == 1)   /* No parameters there read from standard input */
  {
    while(gets(line) != NULL)
    {
      l=strlen(line);
      if(l > 2)
      {
        salt[0]=line[0];
        salt[1]=line[1];
        printf(&quot;%s\n&quot;,crypt(line+2,salt));
      }
      else
        fprintf(stderr,&quot;Too short [%i] \&quot;%s\&quot;\n&quot;,l,line);
    }
  }
  else
  {
    for(i=1;i<argc;i++)
    {
      l=strlen(argv);
      if(l > 2)
      {
        salt[0]=argv[0];
        salt[1]=argv[1];
        printf(&quot;%s\n&quot;,crypt(argv+2,salt));
      }
      else
        fprintf(stderr,&quot;Too short [%i] \&quot;%s\&quot;\n&quot;,l,argv);
    }
  }
}
也有相应的perl程序。

论坛徽章:
0
5 [报告]
发表于 2002-05-16 12:38 |只看该作者

怎样用非交互方式改变登录用户密码??

配合awk之类工具我不太懂,能不能说得详细点,有AWK程序吗?

论坛徽章:
0
6 [报告]
发表于 2002-05-16 12:55 |只看该作者

怎样用非交互方式改变登录用户密码??

是啊.其实关键是不能用passwd.要么装expect,pty.

论坛徽章:
0
7 [报告]
发表于 2002-05-16 14:00 |只看该作者

怎样用非交互方式改变登录用户密码??

谢谢了

论坛徽章:
0
8 [报告]
发表于 2002-09-17 17:33 |只看该作者

怎样用非交互方式改变登录用户密码??

没有别的方法了吗?
怎样用非交互方式清除登录用户密码??
不要用上面的那些工具!

论坛徽章:
0
9 [报告]
发表于 2002-09-17 17:34 |只看该作者

怎样用非交互方式改变登录用户密码??

急急!!!!

论坛徽章:
0
10 [报告]
发表于 2002-09-17 17:44 |只看该作者

怎样用非交互方式改变登录用户密码??

我觉得以后谁要是讲什么什么在哪儿有的话,最好把地址也贴出来!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP