免费注册 查看新帖 |

Chinaunix

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

有什么方法能在脚本里调用passwd自动设置密码 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-27 09:57 |只看该作者 |倒序浏览
我想写一个脚本, 能够调用passwd重新设置用户密码, 可是调用不成功

调用如下:

  1. passwd --stdin ${1} << PSWD     #${1}为用户名, ${5}为密码
  2. ${5}
  3. ${5}
  4. PSWD
复制代码


在linux下面成功了, bsd确不行, 哪位知道怎么回事~~~

我在love unix问过了, 有人建议用expect, 可出于某些原因不能用, 还有其他方法能解决么?

论坛徽章:
0
2 [报告]
发表于 2005-12-27 10:52 |只看该作者

我也很想知道这个问题的解决方法

我也很想知道这个问题的解决方法

论坛徽章:
1
寅虎
日期:2015-01-23 02:35:47
3 [报告]
发表于 2005-12-27 12:05 |只看该作者
用expect实现比较好

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
4 [报告]
发表于 2005-12-27 12:09 |只看该作者
如果可以用telnet或ssh登录就好办了。
以telnet为例:(telnet 自动登录可能需要-i参数,偶有点含糊,请楼主自行试验)
  1. ( sleep 1
  2. echo your_username
  3. sleep 1
  4. echo your_password
  5. sleep 1
  6. echo passwd
  7. sleep 1
  8. echo $5
  9. sleep 1
  10. echo $5
  11. sleep 1
  12. echo exit ) | telnet 127.0.0.1
复制代码

[ 本帖最后由 r2007 于 2005-12-27 12:14 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2005-12-27 22:00 |只看该作者
用adduser解决了:

#!/bin/sh
#==========================================================
create_account(){       #name, shell, dir, group, pswd
OS=`uname |tr "[A-Z]" "[a-z]"`
if [ ${OS} = "freebsd" ]; then
        pw userdel ${1} 2> /dev/null
echo "
${1}
${1}
${2}
${3}


${4}
no
${5}
${5}
y
n
" |adduser -s -q 2> /dev/null
elif [ ${OS} = "linux" ]; then
        userdel ${1} 2> /dev/null
        useradd -p ${5} -g ${4} -d ${3} -s ${2} ${1} 2> /dev/null
passwd --stdin ${1} << PSWD
${5}
${5}
PSWD
else
        echo "Don't know how to add user."
fi
}

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
6 [报告]
发表于 2005-12-28 09:17 |只看该作者
楼主的代码真够大胆的,估计没有人敢用这段代码的,如果他是一个管理员的话

论坛徽章:
0
7 [报告]
发表于 2005-12-28 11:46 |只看该作者

请问在SUNOS中如何解决该问题?谢谢

请问在SUNOS中如何解决该问题?谢谢
SUNOS中好像不能直接用--stdin

论坛徽章:
0
8 [报告]
发表于 2005-12-28 11:46 |只看该作者
passwd 好像有个-p选项

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
9 [报告]
发表于 2005-12-28 12:25 |只看该作者
原帖由 大蚂蚁 于 2005-12-28 11:46 发表
passwd 好像有个-p选项

你说的是useradd吧

论坛徽章:
0
10 [报告]
发表于 2005-12-28 12:32 |只看该作者
楼主的代码真够大胆的,估计没有人敢用这段代码的,如果他是一个管理员的话

呵呵~~~我那脚本是对付新机器, 做初始化配置用的, 上线的机器还是小心些用比较好

请问在SUNOS中如何解决该问题?谢谢
SUNOS中好像不能直接用--stdin

我这里没有sun os, 请其他大哥帮忙~~~

[ 本帖最后由 dinner3000 于 2005-12-28 12:47 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP