会员控制台 会员登陆 会员注册 最后更新 高级搜索 会员投稿 退出登陆
设为首页
收藏本站
留言给我
  首页 | 操作系统类 | 程序设计类 | 数据库类 | 应用服务类 | 网络及硬件类 | 其他技术 | GBunix论坛
操作系统类
程序设计类
数据库类
应用服务类
网络及硬件类
其他技术
Unix中文 / 程序设计类 / SHELL / 非交互方式改变登录用户密码
非交互方式改变登录用户密码
2004-07-03          点击:
非交互方式改变登录用户密码
用SHELL编写改变登录用户密码,用户名、旧密码、新密码用重定向输入????

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

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

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

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

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



使用如下的.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]='

了解更多详情,参与讨论,请进入GBUNIX论坛

http://www.gbunix.com/bbs/index.php
责任编辑: trotter

相关文章
如何查找网络中其他非法DHCP服务器 - 08-23 11:09 am - 点击: 201
Linux下配置完整安全的DHCP服务器详解 - 06-02 08:44 pm - 点击: 2180
Linux下配置DHCP服务器实战 - 08-14 03:43 pm - 点击: 626
在unix/linux下安装配置DHCP服务 - 07-03 11:43 am - 点击: 910

发表评论 查看评论 加入收藏 Email给朋友 打印本文
给该文章评分
1 2 3 4 5 6 7 8 9 10
平均得分 0, 共 0 人评分
1 2 3 4 5 6 7 8 9 10
发表评论
标题:
内容:
声明:本站资讯均来自互联网,所有文章版权归原作者和出版者所有,如涉及版权问题,请来信告知!
Copyright © 2002-2004 GBunix.com. All rights reserved.