跳转至

Index

  • 创建十个用户,并给他们设置随机密码,密码记录到一个文件中,文件名为userinfo_txt
  • 用户从user_00到user_09
  • 密码要求:包含大小写字母以及数字,密码长度为15位
    #!/bin/bash
    
    ##先查看/tmp/userinfo.txt文件是否存在,存在的话先删除,以免影响脚本结果
    if [ -f /tmp/userinfo.txt ]
    then
        rm -f /tmp/userinfo.txt
    fi
    
    ##判断mkpasswd命令在不在,我们使用该命令来生成随机字符串也就是用户的密码
    if ! which mkpasswd
    then
    ##在这里,我们假定系统是Centos或者Rocky,可以使用yum安装包
        yum install -y expect
    fi
    
    ##借助seq生成从00到09,10个数的队列
    for i in `seq -w 0 09`
    do
        ##每次生成一个随机字符串,将该字符串赋值给p变量,这个就是用户的密码
        ##mkpasswd命令默认生成的字符串会包含大小写字母和数字和特殊符号
        ##如果不要求特殊符号,可以添加-s 0 来限定不使用特殊符号
        p=`mkpasswd -l 15 -s 0`
        ##添加用户,并给该用户设置密码
        useradd user_${i} && echo "${p}"| passwd --stdin user_${i}
        echo "user_${i} ${p}" >> /tmp/userinfo.txt
    done
    

我的机子不是Centos,这里就不演示了。

总结:

1.mkpasswd可以生成随机字符串,-l指定长度,-s指定特殊字符个数,-c指定小写字母个数,-C指定大写字母个数,-d指定数字个数

2.seq可以生成序列,用法: seq 1 5 ;seq 5; seq 1 2 10; seq 10 -2 1;seq -w 1 10

3.passwd --stdin username