linux用户随机密码,Linux面试题-批量添加用户并设置8位随机密码

一。批量添加用户stu01 stu02 stu03 并设置123456

化简为 添加3个用户设置固定密码

1.最终目标:

useradd stu01 ;echo 123456|passwd --stdin stu01

useradd stu02 ;echo 123456|passwd --stdin stu02

useradd stu03 ;echo 123456|passwd --stdin stu03

2.第1个里程碑-生成用户名

方法1

[root@oldboyedu59 ——]# echo stu{013}|xargs -n1

stu01

stu02

stu03

第2个里程碑-命令拼接

利用sed/awk 里面

sed 's###g' 后两个井号之间写什么 屏幕就显示什么

awk 利用 "" 双引号里面写什么 屏幕就显示什么

[root@oldboyedu59 ——]# echo stu{013}|xargs -n1|sed -r 's#(。*)#useradd \1#g'

useradd stu01

useradd stu02

useradd stu03

[root@oldboyedu59 ——]# echo stu{013}|xargs -n1|sed -r 's#(。*)#useradd \1;echo 123456|passwd --stdin \1#g'

useradd stu01;echo 123456|passwd --stdin stu01

useradd stu02;echo 123456|passwd --stdin stu02

useradd stu03;echo 123456|passwd --stdin stu03

补充:

& 符号在sed命令中s###g 表示前面正则匹配到的内容

[root@oldboyedu59 ——]# echo {110}

1 2 3 4 5 6 7 8 9 10

[root@oldboyedu59 ——]# echo {110}|sed -r 's#([0-9]+)##g'

<1> <2> <3> <4> <5> <6> <7> <8> <9> <10>

[root@oldboyedu59 ——]# echo {110}|sed -r 's#[0-9]+##g'

<1> <2> <3> <4> <5> <6> <7> <8> <9> <10>

第3个里程碑-把内容运行

bash 命令解释器

[root@oldboyedu59 ——]# echo pwd

pwd

[root@oldboyedu59 ——]# echo pwd|bash

/root

[root@oldboyedu59 ——]# echo hostname

hostname

[root@oldboyedu59 ——]# echo hostname |bash

oldboyedu59

找一个 进行测试 测试成功最终交给bash运行

[root@oldboyedu59 ——]# useradd stu02;echo 123456|passwd --stdin stu02

Changing password for user stu02.

passwd: all authentication tokens updated successfully.

交给bash运行

[root@oldboyedu59 ——]# echo stu{013}|xargs -n1|sed -r 's#(。*)#useradd \1;echo 123456|passwd --stdin \1#g' |bash

Changing password for user stu01.

passwd: all authentication tokens updated successfully.

useradd: user 'stu02' already exists

Changing password for user stu02.

passwd: all authentication tokens updated successfully.

Changing password for user stu03.

passwd: all authentication tokens updated successfully.

二。批量添加用户stu04 stu05 stu06 随机8位密码

化简为 添加3个用户设置随机密码

第1个里程碑-生成用户名

方法1

[root@oldboyedu59 ——]# echo stu{013}|xargs -n1

stu01

stu02

stu03

第2个里程碑-生成随机密码

方法1 tr + head

[root@oldboyedu59 ——]# tr -cd 'a-zA-Z0-9'

B0iV36fZ[root@oldboyedu59 ——]#

方法2 date +md5sum/sha512sum + head

[root@oldboyedu59 ——]# date +%N

211379317

第3个里程碑-命令拼接

需要通过sed/awk拼接出下面的4个命令

useradd stu06;

pass=date +%N;

echo pass∣passwd??stdinstu06;echopass stu06 >>/root/pass.txt

通过sed/awk拼接后,想要的结果为:

useradd stu04; pass=——date +%N——; echo $pass |passwd --stdin stu04 ; echo $pass  stu04 >>/root/pass.txt

useradd stu05; pass=——date +%N——; echo $pass |passwd --stdin stu05 ; echo $pass  stu05 >>/root/pass.txt

useradd stu06; pass=——date +%N——; echo $pass |passwd --stdin stu06 ; echo $pass  stu06 >>/root/pass.txt

拼接的命令如下:

[root@oldboyedu59 ——]# echo stu{046}|xargs -n1 |sed 's#.*#useradd &;p=$(date +%N);echo $p|passwd --stdin &;echo $p & >>/p.txt#g'

useradd stu04;p=$(date +%N);echo $p|passwd --stdin stu04;echo $p stu04 >>/p.txt

useradd stu05;p=$(date +%N);echo $p|passwd --stdin stu05;echo $p stu05 >>/p.txt

useradd stu06;p=$(date +%N);echo $p|passwd --stdin stu06;echo $p stu06 >>/p.txt

上面命令分步拆开样子:

echo stu{046}|xargs -n1 |sed 's#.*#

useradd &;

p=$(date +%N);

echo $p|passwd --stdin &;

echo $p & >>/p.txt#

上面随便找1条 执行 测试是否ok 测试成功就可以交给bash执行

[root@oldboyedu59 ——]# useradd stu05;p=$(date +%N);echo $p|passwd --stdin stu05;echo $p stu05 >>/p.txt

Changing password for user stu05.

passwd: all authentication tokens updated successfully.

[root@oldboyedu59 ——]# id stu05

uid=1008(stu05) gid=1009(stu05) groups=1009(stu05)

[root@oldboyedu59 ——]# su - oldboy

Last login: Thu Apr 25 09:28:20 CST 2019 from 10.0.0.1 on pts/2

[oldboy@oldboyedu59 ——]$ logout

[root@oldboyedu59 ——]# cat /p.txt

209574583 stu05

[root@oldboyedu59 ——]# su - oldboy

Last login: Thu Apr 25 12:03:36 CST 2019 on pts/0

[oldboy@oldboyedu59 ——]$ su - stu05

Password:

[stu05@oldboyedu59 ——]$

第4个里程碑-交给bash执行并测试

交给bash执行

[root@oldboyedu59 ——]# echo stu{046}|xargs -n1 |sed 's#.*#useradd &;p=$(date +%N);echo $p|passwd --stdin &;echo $p & >>/p.txt#g'

useradd stu04;p=$(date +%N);echo $p|passwd --stdin stu04;echo $p stu04 >>/p.txt

useradd stu05;p=$(date +%N);echo $p|passwd --stdin stu05;echo $p stu05 >>/p.txt

useradd stu06;p=$(date +%N);echo $p|passwd --stdin stu06;echo $p stu06 >>/p.txt

[root@oldboyedu59 ——]# echo stu{046}|xargs -n1 |sed 's#.*#useradd &;p=$(date +%N);echo $p|passwd --stdin &;echo $p & >>/p.txt#g'|bash

Changing password for user stu04.

passwd: all authentication tokens updated successfully.

useradd: user 'stu05' already exists

Changing password for user stu05.

passwd: all authentication tokens updated successfully.

Changing password for user stu06.

passwd: all authentication tokens updated successfully.

[root@oldboyedu59 ——]# cat /p.txt

209574583 stu05

570581626 stu04

600781084 stu05

660376548 stu06

执行后的测试

[root@oldboyedu59 ——]# cat /p.txt

209574583 stu05

570581626 stu04

600781084 stu05

660376548 stu06

[root@oldboyedu59 ——]#

[root@oldboyedu59 ——]# su - oldboy

Last login: Thu Apr 25 12:03:45 CST 2019 on pts/0

[oldboy@oldboyedu59 ——]$ su - stu06

Password:

[oldboy@oldboyedu59 ——]$ su - stu05

Password:

Last login: Thu Apr 25 12:04:01 CST 2019 on pts/0

[stu05@oldboyedu59 ——]$ logout

[oldboy@oldboyedu59 ——]$ logout

转自:https://www.oldboyedu.com/blog/1954.html

阅读(226) | 评论(0) | 转发(0) |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值