shell 练习(12)——批量创建用户,并设置密码

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 "1234\n1234" | 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 "$p\n$p" | passwd user_$i >/dev/null 2>/dev/null
done

原文地址:http://blog.51cto.com/hellocjq/2329481

时间: 2024-11-09 03:08:17

shell 练习(12)——批量创建用户,并设置密码的相关文章

使用while批量创建用户并设置密码

linux脚本学习(shell) 原文地址:http://blog.51cto.com/5450935/2096208

(转)通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加

通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加 原文:http://www.21yunwei.com/archives/4773 有一个朋友问我如何批量创建用户和设置密码 ,我就简单给他写了两个脚本,让他自己参考下并自己根据实际情况进行修改,毕竟他需要的用户名和密码都是实际生产环境的. 这里分两种情况,一种是测试for循环批量添加用户,一个是根据实际生产环境进行批量添加.分别写一下案例如下:1,for添加指定类型用户以及设置随机密码.脚本作用:批量添加user1-10用

Shell脚本批量创建用户并随机生成密码

要求:批量创建10个系统账号oldboy01-oldboy10,并设置生成密码(密码不同). 实现脚本: #!/bin/bash #Question3 for i in $(seq -w 10) do         useradd -s /bin/bash oldboy$i         echo "password$i" | md5sum | tee -a passwd.txt | passwd --stdin  oldboy$i done 脚本执行效果: [[email pro

Linux 下批量创建用户(shell 命令)

第一种方法: 用shell批量创建用户,分为2中:1,批量创建的用户名无规律 :2.批量创建的用户名有规律首先,来说下批量创建的用户名无规律的shell:先把需要批量创建的用户名用一个文本文档列出来,如下图的userlist文件再把与用户名匹配的密码用另一个个文本文档列出来,如下图的passwd文件 这两个文本文档内容,如下图所示: 下面是我编写的shell脚本.如下图所示 注意需要导入我们在userlist中写的用户名与passwd中写的与用户名匹配的密码项注:chpasswd命令#以root

shell脚本之centos批量创建用户

操作环境:centos7 执行命令: cat /etc/passwd | grep zcl   #确认没有zcl相关用户: mkdir -p /zcl/shell/ #创建脚本存放目录: cd /zcl/shell/ #切换至脚本目录: #编辑批量创建用户脚本: echo " #!/bin/bash" groupadd zcl_group for user in zcl1 zcl2 zcl3; do useradd -G zcl_group $user; echo "1234

企业实战脚本案例2:批量创建用户并设置初始密码

批量创建用户并设置初始密码 目录: 1.脚本功能介绍 2.脚本制作技术需求 2.1 useradd命令 2.2 id命令 2.3 passwd命令 2.4 随机密码 2.5 while循环+case+select 3.脚本编写案例 一.脚本功能介绍 在企业中生产或运维中,经常会遇到VPN服务器.企业网盘.企业邮箱.云桌面私有账号等等一系列的服务器.当批量新员工入职时,经常需要批量账号分配给新员工,若此类账号存储在数据库时,管理员可根据公司账号命名规范通过专有图形化系统进行录入账号,若账号存储在系

linux实战考试题:批量创建用户和密码-看看你会么

linux实战考试题:批量创建用户和密码-看看你会么? 老男孩教育第五关实战考试题:批量创建10个用户stu01-stu10,并且设置随机8位密码,要求不能用shell的循环(例如:for,while等),只能用linux命令及管道实现. 方法1: # echo stu{01..10}|tr " " "\n"|sed -r 's#(.*)#useradd \1 ; pass=$((RANDOM+10000000)); echo "$pass"|p

Linux 批量创建用户及设置随机密码

一.项目需求批量创建10个用户stu01-stu10,并且设置随机8位密码,要求:不能用shell循环(例如:for,while等),只能用linux命令及管道实现.二.实现方法(一)1) 创建账号并设置随机密码[[email protected] ~]# for n in seq 10;do useradd user$n;echo "user$necho user$n|md5sum|cut -c4-8"|passwd --stdin user$n;done2)打印密码并导入文件[[e

3.12 批量创建采购订单

3.12.1   业务方案描述 在生成采购订单前,由采购员审核计划结果,根据供应商的供货状况调整供应商供货数量.供货日期. 所有合格供应商都能够通过下单平台批量下达采购订单,尽管供应商没有供货比例,或供货比例为0. 一个集成的界面,清晰的列出MRP/DRP结果,及相关辅助信息.以帮助仓管员调整计划时获得一些决策信息: 1)审核计划结果: 2)指定供应商: 3)调整计划结果: 4)批量生成采购订单: 3.12.2   业务方案逻辑控制(包含三部分) MRP建议补充程序: 1)将ASL中的该物料可供