要求:創(chuàng)建10個普通用戶,并給它們設(shè)置隨機密碼,將密碼記錄到一個文檔里,用戶名為user_01 — user_10,密碼要求包含大小寫字母以及數(shù)字,密碼長度15位。
題目要求,讓我們創(chuàng)建user_01到user_10共10個用戶,所以需要使用循環(huán)構(gòu)建01 - 10的序列,方法是 "seq -w 1 10"這個命令執(zhí)行后,會打印 ”01 02 ... 09 10" 10個數(shù)字出來,這個"-w"選項的意思是等寬,即按序列中最大寬度的數(shù)字來,本例中10就是2位,所以1個數(shù)字時會在前面補上一個0。
seq 構(gòu)建序列后,需要循環(huán),使用for即可所以最終寫成這樣
foriin`seq-w110` do useradduser_$i done
這個seq 用的還是蠻多的,所以請記住以下用法:
1)seq 支持步長, 默認步長為1,步長可以定義成2,比如
seq 1 2 10 1 3 5 7 9
2)也可以倒序
seq 10 -2 1 10 8 6 4 2
創(chuàng)建用戶沒啥可說的,直接 useraddusername 即可,關(guān)鍵是這個隨機密碼這里,這個并沒有標準答案,只要構(gòu)建出符合要求的字符串就行,我建議的方法是使用mkpasswd命令
默認系統(tǒng)沒有,所以你使用它之前需要先判斷一下
if ! which mkpasswd &>/dev/null then yum install -y expect fi
這里有個前提,yum是centos/RHEL/Rocky系統(tǒng)用的,那如果是Debian/ubuntu呢,那就得使用apt安裝了,所以,要想腳本完美,還需要判斷系統(tǒng)版本。當(dāng)然我們寫腳本的時候就已經(jīng)知道系統(tǒng)是啥系統(tǒng)了,這里就根據(jù)系統(tǒng)版本確定命令就行了。
mkpasswd命令 可以生成隨機字符串,默認生成 9位的 ,例如
要想使用mkpasswd生成一個15位的密碼還需要加個參數(shù) -l(length) ,長度的意思
mkpasswd -l 15
另外 mkpasswd也可以指定生成指定字符的個數(shù),比如 -s 2,s(special),表示特殊符號有2個。啥是特殊符號呢?比如 "* ( ) [ ] & ^ @ # ! : ? /"等。mkpasswd -s 0 意思是特殊符號為0。另外還有幾個選項:
-d指定數(shù)字
-C指定大寫字母
-c 指定小寫字母
生成密碼后,需要給它賦值到變量里,比如 p=`mkpasswd -l 15 -s 0`。然后就是給用戶設(shè)置密碼了,設(shè)置密碼使用passwd命令,正常設(shè)置密碼 這樣做 :
但這樣寫到腳本里 就會有問題啦,因為需要交互,腳本里肯定不合適。所以還有另外一種方法 :
這樣一條命令就可以啦,寫到腳本里,完美!
再往后就是將密碼保存到一個文件里,題目里我雖然沒有要求大家把用戶名也保存,但是大家想想,如果咱們的用戶名不規(guī)則,那你能知道哪個密碼是哪個用戶么。所以最好是將用戶名 密碼寫到一起。
大家都知道使用 >>追加重定向,但是否忘記了,如果這個文本里就有內(nèi)容呢?所以,最好是先將文本做一個清空的操作:
if [ -f /tmp/user_pass.txt ] then rm -f /tmp/user_pass.txt echo "user_$i $p" >> /tmp/user_pass.txt fi
當(dāng)然這段代碼要放到循環(huán)的外面去,也就是要放到腳本一開始的時候。如果在循環(huán)里面,那么腳本執(zhí)行完,這個文本里就只會記錄一行,大概就是這么多內(nèi)容最后再給大家發(fā)一下最終的腳本:
#!/bin/bash if [ -f /tmp/user_pass.txt ] then rm -f /tmp/user_pass.txt fi if ! which mkpasswd then yum install -y expect fi for i in `seq -w 1 10` do p=`mkpasswd -l 15 ` useradd user_$i && echo "$p"| passwd --stdin user_$i echo "user_$i $p" >> /tmp/user_pass.txt done
審核編輯:湯梓紅
-
字符串
+關(guān)注
關(guān)注
1文章
579瀏覽量
20521 -
命令
+關(guān)注
關(guān)注
5文章
684瀏覽量
22027 -
腳本
+關(guān)注
關(guān)注
1文章
389瀏覽量
14866
原文標題:批量創(chuàng)建10個用戶用腳本如何實現(xiàn)
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論