1. 程式人生 > >批量建立10個使用者,並設定8位隨機密碼及儲存

批量建立10個使用者,並設定8位隨機密碼及儲存

一、知識點

  方法1:

  • 建立使用者 useradd $user
    • 10個使用者 seq -f '[prefix]%0ng' 10
    • [prefix]字首 0n n 表示字首後面跟幾個0
  • 設定密碼 echo "密碼"|passwd --stdin $user
    seq -f 'stu%02g' 10|awk '{print "echo -n -e  使用者名稱:"$0"\t 密 >>/tmp/stupass &&  useradd "$0" && op=$(date +%s%N | md5sum | cut -c 1-8) && echo $op|passwd --stdin "$0"| echo 碼:$op >>/tmp/stupass"}'|bash
    

      結果:

    [[email protected] ~]# cat /tmp/stupass
    使用者名稱:stu01 密碼:39d44135
    使用者名稱:stu02 密碼:01909f9e
    使用者名稱:stu03 密碼:303b52c0
    使用者名稱:stu04 密碼:af0f3215
    使用者名稱:stu05 密碼:1bec26e9
    使用者名稱:stu06 密碼:2503fb1e
    使用者名稱:stu07 密碼:df4c0318
    使用者名稱:stu08 密碼:540b520e
    使用者名稱:stu09 密碼:71ab8179
    使用者名稱:stu10 密碼:f03cebe6

  解釋:

  • echo -n -e  -n不要在最後自動換行   -e  若字串中出現以下字元,則特別加以處理,而不會將它當成一般 \t出入tab符
  • date +%s%N %s當前時間毫秒數 %N當前時間納秒數
  • md5sum | cut -c 1-8取計算MD5值的1-8位

  方法2:

for n in `seq -w 01 05`;do useradd user$n;echo "user$n:user$n`echo user$n|md5sum|cut -c1-8`"|chpasswd;done

  方法3:

for n in `seq -w 20`;do useradd user$n;echo "user$n`echo user$n|md5sum|cut -c1-8`"|passwd --stdin user$n;done