LinuxSir.cn,穿越时空的Linuxsir!

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

想写个自动添加用户的脚本遇到的问题,请帮忙

[复制链接]
发表于 2007-3-23 14:53:22 | 显示全部楼层 |阅读模式
I am a amateur,不知道该不该来这里问这个问题,如果不对,还请斑竹谅解
我的意图是这样的:比如有一台服务器,不定期的要新加入用户,而加入用户的同时都要给该用户加入smb的权限,
因此每次都是下面的命令:
useradd newuser
passwd newuser 然后从命令行输入个简单的密码
smbpasswd -a newuser 然后输入个简单的smb密码,就ok了,

而发现每次都是这样,所以就想写个自动完成的脚本,

问题1:本来以为无非就是把命令都写到一个文件里面就行了,可是由于设置密码的时候需要从命令行输入,而且需要retype第二次输入确认,不知道有没有什么办法能够写这个脚本

问题2:觉得好像不能实现,于是想采用另外一种方法,就是我添加用户和将该用户加入到smb用户列表中时,我不设定初始密码,这样,我就可以写一个脚本了。于是想写成这样的:
#!/bin/bash
useradd newuser
passwd -d newuser               #删除用户密码,那么用户自己去设置就可以了
可是之后加入smb用户时,无论是用smbadduser还是用smbpasswd -a都还是需要输入啊,不知哪位有没有什么解决办法?谢谢
发表于 2007-3-23 15:54:04 | 显示全部楼层
man expect
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-23 17:03:14 | 显示全部楼层
谢谢楼上的回复,我最开始居然理解你的话为
man expect[ed],
就是你让我自己看看man手册,于是我看了看,^_^

自问自答,也许会对“和我一个水平的选手”有所帮助,呵呵
发现passwd和smbpasswd都有参数不和用户交互
1 passwd 用户名 --stdin 可以从命令行输入,从而可以重定向
e.g.
echo "simple" | passwd newuser --stdin 就可以把用户newuser的密码设置成simple了
2 smbpasswd -a 用户名 -s 可以从命令行输入,重定向
echo -e "simple\nsimple" | smbpasswd -a newuser -s 就可以把用户newuser的密码设置成simple


准备继续研究下expect命令,还不知道这个怎么使用,在看man手册,不过不是很懂。如果peter_huang兄再给介绍一下,那很感激。
回复 支持 反对

使用道具 举报

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

本版积分规则

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