批量添加用戶,要求如下

腳本一:不是很嚴格但是很簡潔的腳本
#!/bin/bash
#該腳本用來實現批量添加用戶。
#
#作者阿鑫
#日期2019/5/27
#版本v1
#提示用戶腳本使用方法 [ $# -eq 0 ] && echo "Usage useradd.sh number" && exit #判斷是否存在/data/user_passwd,若存在則移動該文件,做備份。 if [ -f /data/user_passwd ];then mv /data/user_passwd /data/user_passwd.bak-`date +%F` else echo "hello" > /dev/null fi ##使用for循環創建用戶 ##passwd從標准輸入讀取密碼,並使用tee命令保存密碼到/data/user_passwd for (( i=1;i<=$1;i++ ));do useradd -g users user_$i echo ` openssl rand -base64 8 ` | tee -a /data/user_passwd | passwd user_$i --stdin done
腳本二:在腳本一中密碼可以使用專門的密碼命令mkpasswd,實現更豐富的密碼規則。
並且腳本一也存在一個問題,就是用戶名要求為user01的格式。
/data/user_passwd只保存了秘密沒有保存用戶名。
腳本二解決了這些問題
#!/bin/bash #該腳本用來實現批量添加用戶。 #作者阿鑫 #日期2019/5/27 #版本v1 #查看是否安裝了mkpasswd命令 which mkpasswd &>/dev/null || yum install -y mkpasswd #提示用戶腳本使用方法 [ $# -eq 0 ] && echo "Usage useradd.sh number" && exit #判斷是否存在/data/user_passwd,若存在則移動該文件,做備份。 if [ -f /data/user_passwd ];then mv /data/user_passwd /data/user_passwd.bak-`date +%F` else echo "hello" > /dev/null fi ##使用for循環創建用戶 ##passwd從標准輸入讀取密碼,並使用tee命令保存密碼到/data/user_passwd for i in `seq 99`;do useradd -g users user_$i pass=`mkpasswd -l 12 -s 0` echo $pass | passwd --stdin user_$i echo "user_$i $pass" >> /data/user_passwd done #單獨創建用戶user_100 useradd -g users user_100 echo 'mkpasswd -l 12 -s 0' | tee -a /data/user_passwd | passwd user_100 --stdin echo “用戶創建完成”,密碼保存在/data/user_passwd
