3. 批量新增多個使用者

最愛喝酸奶發表於2019-01-09

批量建立多個使用者的需求在生產環境下用的不多,但是經常會在面試時的筆試題上看到,本案例就是批量建立多個使用者。具體要求如下:

1)批量建立100個使用者;

2)使用者名稱為user_01 - user_100;

3)給所有使用者都設定一個隨機密碼,12位長度,且需要包含大小寫字母及數字;

4)並把使用者的密碼儲存到 /data/user_passwd 檔案中;

5)這100個使用者同屬於users組。

參考指令碼如下:

#!/bin/bash
#批量新增100個使用者,user_01 - user_100

#檢查是否有mkpasswd命令,沒有則安裝
if ! which mkpasswd $>/dev/null
then
    echo "沒有mkpasswd命令,安裝該命令:"
    yum install -y expect
fi

#判斷 /data/user_passwd 檔案是否存在
#若存在,應該先刪除
[ -f /data/user_passwd ] && rm -rf /data/user_passwd

#100為三位數,只能遍歷到99
for n in `seq -w 1 99`
do
    pass=`mkpasswd -l 12 -s 0`
    echo "新增使用者user_100"
    
    useradd -g users user_$n
    echo "給使用者user_$n設定密碼"
    echo $pass | passwd --stdin user_$n
    echo "user_$n $pass" >> /data/user_passwd
done

pass=`mkpasswd -l 12 -s 0`
echo "新增使用者user_100"
useradd -g users user_100
echo "給使用者user_100設定密碼"
echo $pass | passwd --stdin user_100
echo "user_100 $pass" >> /data/user_passwd

指令碼中,

1)mkpasswd -s 指定特殊字元個數

2)如果遍歷到100,那就是user_001 - user_100

3)passwd --stdin 從標準輸入讀取令牌,從而更改密碼(只有root使用者才能進行此操作)


相關文章