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/2329478

时间: 2024-10-18 09:12:51

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

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;

批量生成用户

批量生成用户,业务需求: TODO: 1,依据地区信息加载对应组织信息 2,依据组织信息按照分类选择: (角色类别[1]:一个用户具有多角色     角色类别[2]:多用户单角色) 3,批量生成用户,依据现有风格(这里代指:业务需求) 讲解篇:1,服务端aspx,2,服务端后台3,前端javascript4,webservice返回数据(这里采用一般处理程序:handler.ashx.cs) 1,服务端aspx <%@ Page Language="C#" AutoEventWi

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

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

shell脚本之批量添加用户

没错,这是一个简单的脚本,不写不知道,写了才发现自己有多少不足. 下面的脚本主要用于批量添加用户的脚本,本来很简单的脚本,但是添加了一些判断,验证自己学习. 1.判断用户输入是否有误 2.判断用户是否存在,存在就跳过不再处理 代码如下: #/bin/bash #批量添加用户脚本   #判断用户是否存在函数 function panduan()     {         for nametmp in $(cat /tmp/user.txt)             do             

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

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

Shell脚本自定义批量生成ip

$vi ip.sh #!/bin/bash a=$1 b=$2 for ((c=$3;c<255;c++)) do for ((d=$4;d<255;d++)) do echo $a.$b.$c.$d>>ip.txt done done $chmod +x ip.sh $./ip.sh 192 168 0 1 //192和168为自定义固定值,0和1是变量循环至254可自定义,可以按自己需求修改

shell脚本之批量删除用户

1 #!/bin/bash 2 for i in {1..10};do 3 if id user$i &> /dev/null;then 4 userdel -r user$i &>/dev/null 5 echo "user$i is deleted" 6 else 7 echo "This user isn't exist" 8 fi 9 done 原文地址:https://blog.51cto.com/11342825/242496

批量生成多个账户并设置密码

问题1:批量创建10个系统账号ucode01-ucode10并设置密码(密码不能相同) #!/bin/bashfor n in $(seq -w 10)do      useradd ucode-$n      echo "$n"|passwd --stdin ucode-$ndone [[email protected] scripts]# sh adduser01.shChanging password for user ucode-01.passwd: all authentic

shell脚本批量生成配置文件

如果管理的站点和服务器较多的情况下,每次修改配置文件都相当痛苦.因而想到了用shell脚本来批量生成配置文件和配置数据.下面这个脚本是为了批量生成nagios监控配置文件的一个shell脚本程序.其原理是事先定义一个shell脚本模板,然后每个需要监控的站点复制一份模板替换掉模板文件里面的变量. 1.准备模板文件webcheck.template more webcheck.template ###################WEBURL define start##############