LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 691|回复: 4

如何在程序中改用户口令?

[复制链接]
发表于 2006-10-13 11:58:10 | 显示全部楼层 |阅读模式
用命令“passwd” 但它是要交互的

先将口令输两次在一个文本里
passwd username < pass.txt

也不行,报错说两次输入的口令不同


如何是好?
发表于 2006-10-13 12:06:12 | 显示全部楼层
参考passwd的源码阿,猪脑袋
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-17 15:44:39 | 显示全部楼层
"参考passwd的源码!",这么笨的办法也只有猪脑袋才想的出来。

这是expect的最简单的应用:
#!/usr/bin/expect -f
# Change user password

set password [lindex $argv 1]
spawn passwd [lindex $argv 0]
expect "password:"
exp_send "$password\n"
expect "password:"
exp_send "$password\n"
expect eof
回复 支持 反对

使用道具 举报

发表于 2006-10-17 21:50:06 | 显示全部楼层
有一个命令chpasswd,或许可以解决楼主的问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-18 15:14:32 | 显示全部楼层
已用expect方法解决。expect很好用,其他类似问题都可用它。
谢楼上。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表