1. 批量创建用户

在管理机上实现批量给客户机创建用户,所以下面的步骤需要在管理机上操作。
文件名为:useradd.sh
#!/bin/sh
. /etc/init.d/functions

ip=cat iplis.txt

for n in $ip
do
expect useradd.exp root $n “useradd gongli” >/dev/null 2>&1&&\
expect useradd.exp root $n “echo gongli:123456|chpasswd” >/dev/null 2>&1&&\
expect useradd.exp root $n “echo gongli ALL NOPASSWD ALL >>/etc/sudoers” >/dev/null 2>&1
if [ $? -eq 0 ];then
action “$n” /bin/true
else
action “$n” /bin/false
fi
done
useradd gongli
echo gongli:123456|chpasswd

1.2 建立需要新建用户的服务器IP地址列表

文件名:iplis.txt
172.16.1.8
172.16.1.31
172.16.1.41

以上操作在管理机(m01)上以root用户身份完成。

2. 安装expect

yum install expect -y

2.1 编写expect脚本实现自动输入密码

文件名为:useradd.exp
#!/usr/bin/expect
if { $argc != 3 } {
send_user “usage: expect fenfa_sshkey.exp user host\n”
exit
}

define var
set user [lindex $argv 0]
set host [lindex $argv 1]
set commend [lindex $argv 2]
set password “123456”

spawn ssh “-p 65533” $user@$host $commend
expect {
“yes/no” {send “yes\r”;exp_continue}
“*password” {send “$password\r”}
}

expect eof

exit -noexit {
send_user “Oldboy888 say good bye to your!\n”
}

2.2 开始创建用户

sh useradd.sh

编写expect脚本实现自动输入密码 - 图1
通过执行上面的命令,可以看到,已经执行完成,我们到客户机上查看结果。

2.3 查看结果

1、web01服务器
编写expect脚本实现自动输入密码 - 图2
2、backup服务器
编写expect脚本实现自动输入密码 - 图3
3、nfs01服务器
编写expect脚本实现自动输入密码 - 图4

小结:
所有服务器都已成功创建了用户,第一步目标达成。管理机需要安装expect,
可通过yum install expect -y命令安装。以上操作需要在管理机(m01)上以root用户身份完成。