博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell练习(12)——批量生成用户,并设置密码
阅读量:5739 次
发布时间:2019-06-18

本文共 1059 字,大约阅读时间需要 3 分钟。

1. 习题

创建user_00至user_09 共十个新的账号,并且给他们创建密码。密码要求:长度10,包含数字,大小写字母。创建时,需要将用户名和对应的密码保存到一个日志文件。

2. 分析

首先,对用户格式,可以用for循环,配合seq命令产生,具体情况如下:

(1) 产生0-3的数字$ for i in `seq 0 03`;do echo $i; done0123(2)按照两个位宽,产生00-03的数字$ for i in `seq -w  0 03`;do echo $i; done00010203(3) 指定间隔为2,产生数字$ for i in `seq 0 2 09`;do echo $i; done02468

然后,就是考虑生成密码的办法了。随机密码用mkpasswd命令生成,这个命令需要安装expect包。

(1) 没有特殊符号,长度为10的随机密码:$ mkpasswd -s 0 -l 10EW7vp9ombq(2) 没有特殊符号,包含5个数字,长度为14的密码:$ mkpasswd -s 0  -d 5  -l 14mlOd973W3uo7sm

当我们准备好密码之后,就是更新用户的密码了。我们都知道,在linux系统,更新用户密码的命令是passwd。但是passwd在执行的时候,需要连续输入两次密码进行确认。这样,在用脚本批量生成用用户的时候,就不是那么方便了。这里有几种解决的办法:

(1)方法一,利用passwd 命令的--stdin参数,完成密码更新:echo "EW7vp9ombq" | passwd --stdin  user_00(2)方法二,通过echo输出两行内容,作为passwd的两次确认输入,完成更新确认密码,echo  -e 选项,可以将字符串中的"\n"当做换行符:echo -e "1234\n1234" | passwd user_01

3. 脚本

#!/bin/bashfor 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 "$p\n$p" | passwd user_$i >/dev/null 2>/dev/nulldone

转载于:https://blog.51cto.com/hellocjq/2329478

你可能感兴趣的文章
我的友情链接
查看>>
网易有道 IP地址、手机号码归属地和身份证 查询接口API
查看>>
鼠标停留在GridView某一行时行的颜色改变
查看>>
系列3:WAS Liberty Profile hello mysql jdbc
查看>>
基础知识:python模块的导入
查看>>
Android MVC之我的实现
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
关于批处理-1
查看>>
Tomcat部署Web应用方法总结
查看>>
Python3 django2.0 字段加密 解密 AES
查看>>
CCNA实验之:网络地址转换(NAT)实验
查看>>
计算机网络原理笔记-停止等待协议
查看>>
确定当前记录和下一条记录之间相差的天数
查看>>
sql语句返回主键SCOPE_IDENTITY()
查看>>
机器学习开源项目精选TOP30
查看>>
代码分析系列 内存执行过程
查看>>
iOS开发-邮件发送
查看>>
/etc/resolv.conf文件详解
查看>>
【转】VC的MFC中重绘函数的使用总结(整理)
查看>>