通過shell指令碼 批量新增使用者

安全劍客發表於2019-12-09
有一個朋友問我如何批量建立使用者和設定密碼 ,我就簡單給他寫了兩個 指令碼,讓他自己參考下並自己根據實際情況進行修改,畢竟他需要的使用者名稱和密碼都是實際生產環境的。

這裡分兩種情況,一種是測試for迴圈批量新增使用者,一個是根據實際生產環境進行批量新增。分別寫一下案例如下:

for新增指定型別使用者以及設定隨機密碼

指令碼作用:批量新增user1-10使用者並設定隨機8位數隨機密碼

#!/bin/bash
#test add user and set passwd
for n in `seq 10`
do
useradd  user$n;
echo user$n |passwd  `echo user$n |md5sum |cut -c1-8`
done
實際生產環境批量新增使用者和設定對應密碼

指令碼作用:在生產環境中批量新增指定使用者、設定對應密碼,並禁止sudo -s、sudo -i切換到root。

思路:將所有要新增的使用者名稱和密碼放到一個陣列中,設定一個函式進行擷取使用者名稱和密碼並進行新增使用者、設定密碼。最後用一個迴圈呼叫這個函式即可新增。

#!/bin/bash
#adduser and set passwd
 
userlist=(
 user21:123456
 user22:456789
 user23:876543
)
function adduser_setpasswd_sudo(){
user=`echo $1 |awk -F: '{print $1}'`
passwd=`echo $1 |awk -F: '{print $2}'`
useradd -m -s /bin/bash $user
echo "$user:$passwd"|chpasswd
sed -i "/${user}/d"  /etc/sudoers
echo "${user} ALL=NOPASSWD:ALL,!/usr/bin/passwd,/usr/bin/passwd  [a-zA-Z]*,!/usr/bin/passwd root,!/bin/bash" >> /etc/sudoers
}
 
for n in ${userlist[@]}
do
adduser_setpasswd_sudo  $n
done
刪除要取消的賬戶以及取消sudo許可權
#!/bin/bash
cat < < EOF
##############################################################
  delete  username  and  cancle  sudo privileges.
##############################################################
EOF
read -p  "Please  input username  which you want to del:" username
userdel  -r $username
sed  -i "/${username}/d" /etc/sudoers
 
echo "Delete $username finished."

原文地址: https://www.linuxprobe.com/random-password-shell.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2667572/,如需轉載,請註明出處,否則將追究法律責任。

相關文章