1. 程式人生 > >shell應用之批量新增使用者例項

shell應用之批量新增使用者例項

這裡要實現功能介紹
讀取一個使用者列表檔案
給列表中的使用者新增隨機密碼需要包含大小寫字元和數字
儲存對應的使用者和密碼檔案
這些使用者屬於同個使用者組

1、列表檔案

[[email protected] ~]# cat listuser.txt 
andy
tom
ailis
wate
job
eils

2、這裡我們用mkpasswd 命令生成,沒有這個命令安裝以下
expect這個包

[[email protected] ~]# mkpasswd -d 3 -l 13 -s 0 -C 2
Ppkvy0pOwg6m1

3、給使用者設定密碼或修改密碼

第一種 echo -e "123123\n123123\n" | passwd root  #>echo-e 是接收特殊符號,\n是換換行
第二種 echo -e "123123" |passwd --stdin root

指令碼例項1

#!/bin/bash 
if [ $# -eq 0 ] ;then
        echo "input file path"
        exit 1
fi

if [ ! -f $1 ] ;then
        echo "input file name"
        exit 1
fi

while read aa ;do
        pd=`mkpasswd -l 12 -s 0`
        useradd $aa
        echo $pd |passwd --stdin $aa
        echo "$aa \and\ $pd" >> user_passwd.txt
done < $1

[
[email protected]
sbin]# sh mkku.sh /home/rrad/listuser.txt 更改使用者 andy 的密碼 。 passwd:所有的身份驗證令牌已經成功更新。 更改使用者 tom 的密碼 。 passwd:所有的身份驗證令牌已經成功更新。 更改使用者 ailis 的密碼 。 passwd:所有的身份驗證令牌已經成功更新。 更改使用者 wate 的密碼 。 passwd:所有的身份驗證令牌已經成功更新。 更改使用者 job 的密碼 。 passwd:所有的身份驗證令牌已經成功更新。 更改使用者 eils 的密碼 。 passwd:所有的身份驗證令牌已經成功更新。 [
[email protected]
~]$ cat listuser.txt andy tom ailis wate job eils [[email protected] ~]$

指令碼例項2

[[email protected] sbin]# cat user.sh 
#!/bin/bash
if ! which mkpasswd &> /dev/null
then
    echo "need mkpasswd"
    yum install -y expect
fi

for i in `seq -w 1 10`
do 
    pd=`mkpasswd -l 12 -C 6 -d 3 -s 0`
    echo "add_$i"
    useradd add_$i
    echo $pd |passwd --stdin add_$i
    echo "add_$i  :  $pd" >> ./user_passwd
done
[[email protected] sbin]# cat user_passwd 
add_01  :  PR5jBW1GdiH4
add_02  :  uwM2LD4ZQF8l
add_03  :  k1KTLuKc8G2Q
add_04  :  B06lMOOikL7N
add_05  :  1ex68WCNKWJe
add_06  :  HK8CWV0eA3sy
add_07  :  MvE23Q9BUeiD
add_08  :  9vLY6FzLGgZ8
add_09  :  TCuV13VZEs9l
add_10  :  6KUVPv5cB8yA

簡書連結
-----END----