Linux面试题-批量添加用户并设置8位随机密码
时间:2025-11-04 19:27:30 出处:IT科技阅读(143)
一.批量添加用户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 stu032.第1个里程碑-生成用户名
方法1

第2个里程碑-命令拼接
利用sed/awk 里面
sed s###g 后两个井号之间写什么 屏幕就显示什么
awk 利用 "" 双引号里面写什么 屏幕就显示什么 [root@oldboyedu59 ~]# echo stu{01..3}|xargs -n1|sed -r s#(.*)#useradd \1#g useradd stu01 useradd stu02 useradd stu03 [root@oldboyedu59 ~]# echo stu{01..3}|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 {1..10} 1 2 3 4 5 6 7 8 9 10 [root@oldboyedu59 ~]# echo {1..10}|sed -r s#([0-9]+)#<\1>#g <1> <2> <3> <4> <5> <6> <7> <8> <9> <10> [root@oldboyedu59 ~]# echo {1..10}|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{01..3}|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{01..3}|xargs -n1 stu01 stu02 stu03第2个里程碑-生成随机密码
方法1 tr + head
[root@oldboyedu59 ~]# tr -cd a-zA-Z0-9 </dev/urandom |head -c8 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{04..6}|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{04..6}|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{04..6}|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{04..6}|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总结:
1.理解命令拼接:sed/awk 形式命令 最后交给bash执行
2.sed &
                分享到:
                
温馨提示:以上内容和图片整理于网络,仅供参考,希望对您有帮助!如有侵权行为请联系删除!
猜你喜欢
- 如何使用MXKey链接电脑(简单教程助您轻松连接MXKey与电脑)
 - 联想T60P安装系统教程(全面指南教你如何在联想T60P上安装适合你的操作系统)
 - 以Win10系统安装教程苹果笔记本(让苹果笔记本运行Win10系统的完整指南)
 - 一键启动装系统教程(教你快速安装Win7系统,让电脑焕然一新)
 - 毛桃Pe系统教程(打造专属于你的电脑系统,让操作更高效、更顺心)
 - 深入探索技嘉BIOS的方法与技巧(从刷写技嘉BIOS开始,优化电脑性能的关键一步)
 - 苹果电脑安装XP教程(详细步骤指导,让您的苹果电脑实现多系统安装)
 - 以有间电商的创新模式助力电子商务发展(深度剖析以有间电商的商业模式与运作机制)
 - 电脑玉雕创作教程(掌握玉雕电脑雕刻技术的关键步骤)