1、使用yum安装

# yum -y install expect

2、查看参数设置

usage: mkpasswd [args] [user]
  where arguments are:
    -l #      (length of password, default = 9)
    -d #      (min # of digits, default = 2)
    -c #      (min # of lowercase chars, default = 2)
    -C #      (min # of uppercase chars, default = 2)
    -s #      (min # of special chars, default = 1)
    -v        (verbose, show passwd interaction)
    -p prog   (program to set password, default = passwd)

参数:

-l # (密码的长度定义, 默认是 9)

-d # (数字个数, 默认是 2)

-c # (小写字符个数, 默认是 2)

-C # (大写字符个数, 默认是 2)

-s # (特殊字符个数, 默认是 1)

-v (详细。。。)

-p prog (程序设置密码, 默认是 passwd)

3、开始设置root用户的密码,使用新密码登录测试下。

密码长度20,数字5个,小写5个,大写5个,特殊5个

#  mkpasswd  -l 20 -d 5 -c 5 -C 5 -s 5 root
Z}K7hp0UPJ6v@&,c5{d3

4  -bash-4.1# echo $RANDOM

31413   默认是5个字符
-bash-4.1# echo $RANDOM |md5sum    加md5sum 可以将密码延长,让后再用工具截取其中的某几个字符即可。
bbe6b27e50c42d544b8ac7d9a664ed84  -
-bash-4.1# echo $RANDOM |md5sum |cut -c 4
c
-bash-4.1# echo $RANDOM |md5sum |cut -c 4-5
75
-bash-4.1# echo $RANDOM |md5sum |cut -c 4-6
b38
-bash-4.1# echo $RANDOM |md5sum |cut -c 4-7
022e

-bash-4.1#  echo Long,long ago,ddddddd | cut -b 1-2  截取1-2个字符

Lo
-bash-4.1#  echo Long,long ago,ddddddd | cut -c 1-2
Lo

补充知识:

-bash-4.1# cat zifu.sh

子看看快快快
222
3333
-bash-4.1# cut -c 1-2 zifu.sh 是字符character",
22
33
-bash-4.1# cut -b 1-2 zifu.sh -b 是字节 "byte"
22
33
-bash-4.1# cut -b 1-3 zifu.sh
222
333
-bash-4.1# cut -b 1-3 zifu.sh

5 更改密码的方法

方法一 :passwd 用户名 写相应的密码即可。

方法二:输入重定向

-bash-4.1# echo "234545"|passwd --stdin user3

更改用户 user3 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
-bash-4.1# 

6 通过以上的解释最终写如下批量创建用户和密码的shell脚本:

 #!/bin/bash

for i in `seq -w 0 20`   -w 是对其数字部分
do
    useradd user_$i
    passwd=`mkpasswd -s 0`
    echo $passwd |passwd --stdin user_$i
    echo "user_$i $passwd" >> /tmp/pass.log
done
~