shell脚本批量创建用户

317 阅读1分钟

要求:

创建10个用户,并给他们设置随机密码,用户名和密码记录到一个文件里,用户从user_01 到 user_10 密码要求包含大小写字母以及数字,密码长度15位。

#!/bin/bash
for i in `seq -w 1 10`
do
    useradd user_$i
    passwd=`mkpasswd -l 15 -s 0 -C 5 -c 5 -d 5`
    echo $passwd |passwd --stdin user_$i
    echo "user_$i $passwd" >>/usr/local/src/shell/user_passwd
done

解析:

  • seq -w 1 10

    会打印出“01,02 ... 09, 10”-w 选项是等宽的意思,按照列中最大的宽度数字来,因为有10是两位,所有1个 数字时前面会补上一个0。

  • passwd=mkpasswd -l 15 -s 0 -C 5 -c 5 -d 5 设置mkpasswd变量。

    参数含义: -l 定义密码长度,-s 定义特殊字符数,-C 定义大写字母数,-c 定义小写字母 数,-d 定义数字 的个数。

  • echo passwd |passwd --stdin user_i

    参数含义:--stdin 用于标准输入管道读入新的密码,用于前面echo passwd 生成的密码 给后边变量user_i 用户创建密码

  • echo "user_ii passwd" >>/usr/local/src/shell/user_passwd

    打印出用户密码信息,保存在user_passwd 文件中