天天看點

用shell腳本實作批量建立使用者并修改密碼

要求

已有一個檔案userlist,裡面有三個使用者名,執行腳本時建立這三個使用者,并提示成功建立,

還有密碼檔案passlist,裡面有三個密碼,分别對應上面的三個使用者,分别改密碼,并提示成功。

代碼

#!/bin/bash
#權限檢查,隻有root使用者才可以建立使用者
[ "$USER" != "root" ] && {
        echo -e "\033[31mERROR: permission deny !!\033[0m"
        exit
}
#檔案不能為空
[ -z $1 ] && {
        echo -e "\033[31mERROR: Pleaase input usernamefile following script !!\033[0m"
        exit
}
[ -z $2 ] && {
        echo -e "\033[31mERROR: Pleaase input passwordfile following script !!\033[0m"
        exit
}
#檔案存在檢查
[ -e $1 ] || {
        echo -e "\033[31mERROR: usernamefile not exist !!\033[0m"
        exit
}

[ -e $2 ] || {
        echo -e "\033[31mERROR: passwordfile not exist !!\033[0m"
        exit
}
#兩個檔案行數要一緻,sed -n $=計算行數
while [ `sed -n $= $1` != `sed -n $= $2` ]
do
  echo -e "\033[31mERROR: 檔案行數不一緻 !!\033[0m" 
  exit
done

#x是用來記錄到第幾行也就是第幾個使用者的
export  x
x=0
for i in `cat $1`
do
#先檢查使用者是不是存在
  id $i &> /dev/null  && {
        echo $i已經存在!		
  }||{
  #使用者不存在則建立,提示消息都放進垃圾桶
        useradd $i &> /dev/null && {
        echo 添加$i成功!
        x=$[x+=1]
        #顯示passwd第x行的内容,然後更改密碼
        echo `sed -n ${x}p $2` | passwd --stdin $i &> /dev/null && {
                echo $i密碼修改成功
        }||{
                echo 密碼修改失敗
        }
        }||{
        echo 使用者添加失敗!
        }
        }
done
           

執行效果

可以看到會做異常檢測,并且執行成功,成功建立使用者

用shell腳本實作批量建立使用者并修改密碼

繼續閱讀