Shell程式設計---批量建立使用者併為每個使用者設定隨機密碼
阿新 • • 發佈:2018-11-13
題目要求:批量建立10個系統賬號yuki01-yuki10併為每個賬戶設定8位隨機密碼
分析:
- 注意:使用者名稱中的數字不足兩位前面用0補全的問題
參考之前的部落格:https://blog.csdn.net/yuki5233/article/details/83824107 - 難點:linux下如何生成8位隨機數碼?
參考之前的部落格:https://blog.csdn.net/yuki5233/article/details/82997001 - 建議:批量建立系統賬號時由於使用者量多最好就不要建立使用者家目錄了(使用引數-M)
#!/bin/sh source /etc/profile #%後面指定數字的位數,預設是%g,%2g那麼數字位數不足部分是空格。 for num in `seq -f '%02g' 1 10` do useradd yuki${num} -M definePasswd=`echo $RANDOM |md5sum|cut -c 1-8` echo ${definePasswd} | passwd --stdin yuki${num} echo yuki${num} definePasswd is ${definePasswd} >> /home/savePasswd.log done
題目要求:批量刪除剛剛建立的所有系統使用者。
分析:
userdel(選項)(引數)
- -f:強制刪除使用者,即使使用者當前已登入;
- -r:刪除使用者的同時,刪除與使用者相關的所有檔案。
建議1:生產環境中,如果某個人運維人員離職,我們在刪除他登入伺服器的賬戶時一般都不會用 -r引數將與他賬戶相關的所有檔案刪除,因為畢竟在短時間內你還不確認與其賬戶相關的所有檔案是否有用。
建議2: 生產環境中,刪除某賬戶(使其無法登入)可以直接去/etc/passwd 檔案中將此使用者的資訊註釋掉即可,一旦日後發現有誤便可以直接取消註釋恢復。
這裡我們只做測試,所以不用考慮以上問題。
#!/bin/sh
source /etc/profile
for num in `seq -f '%02g' 1 10`
do
userdel -r yuki${num}
done