shell 练习(12)——批量创建用户,并设置密码
发布时间:2020-12-15 23:08:25 所属栏目:安全 来源:网络整理
导读:1. 习题 创建user_00至user_09 共十个新的账号,并且给他们创建密码。密码要求:长度10,包含数字,大小写字母。创建时,需要将用户名和对应的密码保存到一个日志文件。 2. 分析 首先,对用户格式,可以用for循环,配合seq命令产生,具体情况如下: (1) 产生
1. 习题
创建user_00至user_09 共十个新的账号,并且给他们创建密码。密码要求:长度10,包含数字,大小写字母。创建时,需要将用户名和对应的密码保存到一个日志文件。 2. 分析首先,对用户格式,可以用for循环,配合seq命令产生,具体情况如下: (1) 产生0-3的数字 $ for i in `seq 0 03`;do echo $i; done 0 1 2 3 (2)按照两个位宽,产生00-03的数字 $ for i in `seq -w 0 03`;do echo $i; done 00 01 02 03 (3) 指定间隔为2,产生数字 $ for i in `seq 0 2 09`;do echo $i; done 0 2 4 6 8 然后,就是考虑生成密码的办法了。随机密码用mkpasswd命令生成,这个命令需要安装expect包。 (1) 没有特殊符号,长度为10的随机密码: $ mkpasswd -s 0 -l 10 EW7vp9ombq (2) 没有特殊符号,包含5个数字,长度为14的密码: $ mkpasswd -s 0 -d 5 -l 14 mlOd973W3uo7sm 当我们准备好密码之后,就是更新用户的密码了。我们都知道,在linux系统,更新用户密码的命令是passwd。但是passwd在执行的时候,需要连续输入两次密码进行确认。这样,在用脚本批量生成用用户的时候,就不是那么方便了。这里有几种解决的办法: (1)方法一,利用passwd 命令的--stdin参数,完成密码更新: echo "EW7vp9ombq" | passwd --stdin user_00 (2)方法二,通过echo输出两行内容,作为passwd的两次确认输入,完成更新确认密码, echo -e 选项,可以将字符串中的"n"当做换行符: echo -e "1234n1234" | passwd user_01 3. 脚本#!/bin/bash for i in `seq -w 0 09` do p=`mkpasswd -s 0 -l 10` useradd user_$i >/dev/null 2>/dev/null echo "user_$i $p" >> /tmp/useradd.log echo -e "$pn$p" | passwd user_$i >/dev/null 2>/dev/null done (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |