經過shell腳本 批量添加用戶

有一個朋友問我如何批量建立用戶和設置密碼 ,我就簡單給他寫了兩個腳本,讓他本身參考下並本身根據實際狀況進行修改,畢竟他須要的用戶名和密碼都是實際生產環境的。

這裏分兩種狀況,一種是測試for循環批量添加用戶,一個是根據實際生產環境進行批量添加。分別寫一下案例以下:html

for添加指定類型用戶以及設置隨機密碼linux

腳本做用:批量添加user1-10用戶並設置隨機8位數隨機密碼shell

#!/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。bash

思路:將全部要添加的用戶名和密碼放到一個數組中,設置一個函數進行截取用戶名和密碼並進行添加用戶、設置密碼。最後用一個循環調用這個函數便可添加。dom

#!/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測試

相關文章
相關標籤/搜索