批量创建用户添加随机密码

1、批量创建用户user01-user10

#seq -w 10|sed -r "s/(.*)/useradd user\1/g"|bash

2、-r和\1的分析

-r, --regexp-extended

use extended regular expressions in the script

表示可以使用扩展的正则

\1正则中匹配第一个group,也就是匹配第一个()里边的内容

下面案例分析

#vi test.txt

sxz23749237492384

zxs379427493279

SXZ932574534

#sed -n 's/^\([a-z A-Z]\{3\}\)\([0-9]\{3,\}\)/\2/p' test.txt

23749237492384

379427493279

932574534

因为特殊字符添加了转义字符,所以加上-r反而会出错

#sed -r -n's/^\([a-z A-Z]\{3\}\)\([0-9]\{3,\}\)/\2/p' test.txt

sed: -e expression #1, char 41: invalid reference \2 on `s' command's RHS

去掉转义字符就可以

#sed -r -n 's/^([a-z A-Z]{3})([0-9]{2,})/\2/p' test.txt

23749237492384

379427493279

932574534

#tail -10 /etc/passwd

user01:x:5680:5680::/home/user01:/bin/bash

user02:x:5681:5681::/home/user02:/bin/bash

user03:x:5682:5682::/home/user03:/bin/bash

user04:x:5683:5683::/home/user04:/bin/bash

user05:x:5684:5684::/home/user05:/bin/bash

user06:x:5685:5685::/home/user06:/bin/bash

user07:x:5686:5686::/home/user07:/bin/bash

user08:x:5687:5687::/home/user08:/bin/bash

user09:x:5688:5688::/home/user09:/bin/bash

user10:x:5689:5689::/home/user10:/bin/bash

3、为用户添加随机密码

3.1、随机数

生成随机数

RANDOM

exp:

输出3到5个随机数

echo $((RANDOM))

生成七位随机字符为字母加数字

#cat /dev/urandom | head -1 | md5sum | head -c 7

7564fde

生成七位随机字符为字母数字加特殊字符

#cat /dev/urandom | strings -n 7 | head -n 1

lAA'\H6z

3.2、方法一

使用七位随机字符为字母数字加特殊字符修改用户密码

#seq -w 10|sed -r 's#(.*)#key=`cat /dev/urandom|strings -n 7|head -n 1` ;echo $key|passwd --stdin user\1;echo "user\1:$key">> key.log#g'|bash

Changing password for user user01.

passwd: all authentication tokens updated successfully.

Changing password for user user02.

passwd: all authentication tokens updated successfully.

Changing password for user user03.

passwd: all authentication tokens updated successfully.

Changing password for user user04.

passwd: all authentication tokens updated successfully.

Changing password for user user05.

passwd: all authentication tokens updated successfully.

Changing password for user user06.

passwd: all authentication tokens updated successfully.

Changing password for user user07.

passwd: all authentication tokens updated successfully.

Changing password for user user08.

passwd: all authentication tokens updated successfully.

Changing password for user user09.

passwd: all authentication tokens updated successfully.

Changing password for user user10.

passwd: all authentication tokens updated successfully.

#cat key.log

user01:N>E}V3'z

user02:-,[email protected]

user03:3{.h:7V

user04:[SKIB$&

user05:\:[email protected]

user06:h"wlAtW#

user07:Pgo:t\)

user08:H_Xtj[\

user09: g)T#\V<

user10:eKDRJ0=$

3.3、方法二:使用chpasswd批量修改密码

chpasswd会从标准输入批量读取成对的用户名和密码,并使用这些信息来更新现有的一组

用户

#echo user{01..10}:$((RANDOM))|tr " " "\n" > key.log

tr是把前面的输出的空格替换为换行

#cat key.log

user01:12193

user02:32124

user03:26258

user04:4415

user05:24293

user06:10100

user07:13753

user08:3257

user09:24749

user10:15593

#chpasswd<key.log

测试是否成功

#su - user01

[[email protected] ~]$ su - user02

Password:

[[email protected] ~]$

3.4、for循环命令实现用户批量删除

#for USER in `cut -d: -f 1 key.log`;do userdel -r $USER;done

3.5、脚本实现用户批量创建并修改密码

#vi useradd.sh

key=`cat /dev/urandom |strings -n 7 | head -n 1`

#!/bin/bash

#batch add users and passwd

for i in $(seq -w 10)

do

useradd user$i

key=`cat /dev/urandom |strings -n 7 | head -n 1`

echo $key|passwd --stdin user$i

echo "user$i:$key" >> key.log

done

#sh useradd.sh

Changing password for user user01.

passwd: all authentication tokens updated successfully.

Changing password for user user02.

passwd: all authentication tokens updated successfully.

Changing password for user user03.

passwd: all authentication tokens updated successfully.

Changing password for user user04.

passwd: all authentication tokens updated successfully.

Changing password for user user05.

passwd: all authentication tokens updated successfully.

Changing password for user user06.

passwd: all authentication tokens updated successfully.

Changing password for user user07.

passwd: all authentication tokens updated successfully.

Changing password for user user08.

passwd: all authentication tokens updated successfully.

Changing password for user user09.

passwd: all authentication tokens updated successfully.

Changing password for user user10.

passwd: all authentication tokens updated successfully.

#cat key.log

user01:@S_b~)(

user02:{WYci{)`

user03:yklE<&M

user04:O~I;q6k

user05:M*/X$ioe;

user06:t$?|[aR_

user07:6`$chs=g>x

user08:5JGT4ydN+

user09:)FX(     z|

user10:'R/rW)w

参考:

http://blog.51cto.com/asmboy001/182290

http://bbs.chinaunix.net/thread-1387809-1-1.html

https://www.linuxidc.com/Linux/2015-08/122112.htm

http://blog.51cto.com/jackdady/1661781

原文地址:http://blog.51cto.com/xiaoxiaozhou/2108257

时间: 2024-10-13 22:37:08

批量创建用户添加随机密码的相关文章

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

批量创建用户并设置随机密码 批量创建用户并设置随机密码: #!/bin/bash . /etc/init.d/functions user=freddy Path=/data/ UserDb=$Path/user.db FailDb=$Path/user.db [ -d "$Path" ] || mkdir $Path [ -f "$UserDb" ] || touch $UserDb [ -f "$FailDb" ] || touch $Fai

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

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

在 Linux 中如何自动批量创建用户

作为一名 Linux 系统管理员,你有时必须向系统添加新的用户帐户.为此,经常使用 adduser 命令.当涉及到多个用户的创建时,adduser 命令可能会变得相当无聊和耗时.这篇短文旨在为 Linux 系统管理员提供一种简单而无人值守的方式来批量创建用户.newusers 命令将帮助你通过从预填文件中获取信息来创建多个用户. 要求 访问 Linux 计算机的特权. 约定 #- 给定命令需要以 root 用户权限运行或者使用sudo命令 $- 给定命令以常规权限用户运行 如何进行 创建一个包含

Linux中用户和用户组的管理以及如何批量创建用户

一.创建新用户及管理新用户 1).添加新用户 命令格式:useradd [options] username 选项含义: -u:指定用户的UID -c:添加对用户的描述性文字 -s:指定用户的登录脚本 -e:设置账号的实效日期 -f:值为0表示密码立即实效 值为1表示密码永久不实效 -d:指定用户的家目录 -g:指定用户的所属组 -G:指定用户的附属组 使用该命令添加新用户完成后,系统将为用户创建一个与用户名相同的组(且UID=GID),称为私有组,这一方法是为了能让新用户与其他用户隔离,确保安

从Exchange 通往Office 365系列(十八)通过csv文件批量创建用户

之前已经讲过在Office 365中创建用户一种方法是通过活动目录同步工具将本地AD同步到Office 365中,其实这也就是同步到Office 365后台的Windows Azure中,这是在企业已经有本地的AD架构之后的做法,如果小型机构可能内部并没有AD的架构,那么这时候可以通过csv格式的文件在Office 365中直接创建用户,之前已经讲过如何通过活动目录同步工具将本地AD同步到Office 365中,想看的可以去看一下http://mxyit.blog.51cto.com/43088

chattr +A &nbsp; lsattr &nbsp; groupmems pwconv linux批量创建用户

该篇博客,我将为大家介绍几个命令,其中有部分用法很难查到,希望对大家有帮助 1.chattr: chattr命令用来改变文件属性.这项指令可改变存放在ext2文件系统上的文件或目录属性. chattr +A 文件    锁定某个文件的访问时间 chattr -A 文件    解锁某个文件的访问时间 chattr +i 文件    锁定文件,不能删除.改名.更改 chattr +a 文件    只能对文件内容追加,不能修改 man帮助中的一些用法: a:让文件或目录仅供附加用途.  b:不更新文件

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

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

Office 365批量创建用户以及消除用户信息乱码的方法

office 365创建用户的方法主要分为三种,第一种是通过office 365管理员界面创建,第二种是使用powershell工具创建,第三种是从本地AD中把用户信息同步到云端. 本文介绍第一种方法--通过office 365云端的管理员界面创建用户.一个一个地创建用户账号很简单,图形化界面一看便会,本文不做赘述.当企业规模很大时,IT管理人员为企业用户逐一创建用户不现实,因为工作量巨大,效率低.因此,office 365提供了导入CSV文件批量创建用户的功能.然而,当用户信息中有中文时,导入