批量创建10个用户
浏览量:802
1.批量创建10个用户stu01-stu10,并且设置随机8位密码,要求不能用shell循环(例如:for,while等),只能用命令及管道实现。
useradd stu01 ; echo 123456 |passwd --stdin stu01 ç==命令拼接
第一个里程碑-如何生成8位随机密码
方法一:date +%N|md5sum|cut -c 1-8
[root@YoungCheung-vm1 ~]# date +%N|md5sum |cut -c 1-8 72466012 [root@YoungCheung-vm1 ~]# date +%N|md5sum |cut -c -8 fc7c9f32
方法二:随机数 RANDOM
echo $RANDOM|md5sum |cut -c -8
方法三:
[root@YoungCheung-vm1 ~]# echo $((1+3 ))
方法四:只能生成随机数字 $((RANDOM + 10000000)
[root@YoungCheung-vm1 ~]# echo $((RANDOM + 10000000)) 10029615
方法五:mkpasswd
方法六:openssl rand -base64 8
方法七:awk 'BEGIN{srand();print rand()*10000000}'
第二个里程碑-拼接出想要的结果-一个用户
useradd stu01 ; echo 随机密码 |passwd --stdin stu01 useradd stu01 ; echo $(date +%N|md5sum|cut -c 1-8) |passwd --stdin stu01
#上面的问题在于,有随机密码,但是你不知道是啥。
useradd stu01 ; pass=$(date +%N|md5sum|cut -c 1-8);echo $pass |passwd --stdin stu01;echo stu01 $pass >>/root/mima.txt
#上面完成了设置一个用户的密码,并保存
第三个里程碑-拼接出想要结果-多个用户
# useradd stu01 ; pass=$(date +%N|md5sum|cut -c 1-8);echo $pass |passwd --stdin stu01;echo stu01 $pass >>/root/mima.txt # useradd stu02 ; pass=$(date +%N|md5sum|cut -c 1-8);echo $pass |passwd --stdin stu02;echo stu02 $pass >>/root/mima.txt # useradd stu03 ; pass=$(date +%N|md5sum|cut -c 1-8);echo $pass |passwd --stdin stu03;echo stu03 $pass >>/root/mima.txt # useradd stu04 ; pass=$(date +%N|md5sum|cut -c 1-8);echo $pass |passwd --stdin stu04;echo stu04 $pass >>/root/mima.txt # useradd stu05 ; pass=$(date +%N|md5sum|cut -c 1-8);echo $pass |passwd --stdin stu05;echo stu05 $pass >>/root/mima.txt
拼接:
1.一小步:生成用户名并排列
方法一:
$ echo stu{01..10}|xargs -n1
stu01
stu02
stu03
stu04
stu05
stu06
stu07
stu08
stu09
stu10方法二:
$ echo stu{01..10}|tr " " "\n"
stu01
stu02
stu03
stu04
stu05
stu06
stu07
stu08
stu09
stu10方法三:
$ seq -f "stu%02g" 10 stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10
2.第二小步-拼接完成后-找一条进行测试
$ useradd stu01; pass=$(date +%N|md5sum|cut -c 1-8);echo $pass |passwd --stdin stu01;echo stu01$pass >>/root/mima.txt
第四个里程碑-把拼接结果交给bash执行
$ echo stu{01..10}|xargs -n1|awk '{print "useradd "$1"; pass=$(date +%N|md5sum|cut -c 1-8);echo $pass |passwd --stdin "$1";echo "$1" $pass >>/root/mima.txt"}'|bashsed法:
$ echo stu{01..10}|xargs -n1|sed 's#.*#useradd &;pass=$(date +%N|md5sum|cut -c 1-8);echo $pass |passwd --stdin &;echo & $pass >>/root/mima.txt#g'

神回复
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。