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]+)#<\1>#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' </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{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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952968/viewspace-2736925/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux新增使用者並設定密碼以及刪除使用者Linux密碼
- linux建立使用者並設定密碼Linux密碼
- Linux 使用者和密碼設定Linux密碼
- Linux 生成隨機密碼Linux隨機密碼
- Linux 隨機生成密碼mkpasswdLinux隨機密碼
- linux 生成隨機密碼,uuidLinux隨機密碼UI
- MongoDB使用者許可權管理,設定密碼並連線MongoDB密碼
- Linux設定密碼策略Linux密碼
- oracle使用者密碼設定的特殊字元問題Oracle密碼字元
- linux下passwd命令設定修改使用者密碼Linux密碼
- 多例項MySQL批量新增使用者和密碼並授權MySql密碼
- Linux-批量新增使用者stu01..stu03,並設定固定的密碼123456 (要求不能使用迴圈for while)Linux密碼While
- JS生成隨機密碼JS隨機密碼
- 在Linux中,用psswd批次修改使用者密碼Linux密碼
- Linux下Oracle隨機自動啟動指令碼設定LinuxOracle隨機指令碼
- linux建立使用者、設定密碼、修改使用者、刪除使用者Linux密碼
- win10設定密碼在哪裡_win10設定開機密碼怎麼設定Win10密碼
- Linux中自動成生隨機密碼--mkpasswdLinux隨機密碼
- Linux 怎麼實現新增FTP使用者並設定許可權的方法LinuxFTP
- linux_命令列批次修改密碼Linux命令列密碼
- Linux建立使用者、設定密碼、修改使用者、刪除使用者命令Linux密碼
- 使用mkpasswd生成隨機密碼隨機密碼
- MAC設定開機密碼的方法Mac密碼
- win 開機自動輸入密碼 並設定 cmder 開機自啟執行密碼
- oracle使用者密碼有效期設定Oracle密碼
- root使用者下設定N重密碼密碼
- 11g新增預設使用者密碼監測密碼
- Linux 系統生成隨機密碼的10種方法Linux隨機密碼
- 八種在 Linux 上生成隨機密碼的方法Linux隨機密碼
- Linux 命令列生成隨機密碼的十種方法Linux命令列隨機密碼
- mysql 5.7 初始化密碼或隨機密碼MySql密碼隨機
- 自動批次實現linux機器ssh免密shell指令碼Linux指令碼
- Linux 如何設定密碼複雜度?Linux密碼複雜度
- Linux下設定redis訪問密碼LinuxRedis密碼
- linux 設定ssh無密碼登陸Linux密碼
- win10設定開機登入密碼的方法_win10怎樣設定開機密碼Win10密碼
- win10如何給電腦設定開機密碼 win10電腦開機密碼設定Win10密碼
- Win10如何設定開機密碼 win10系統設定開機密碼的步驟Win10密碼