您的位置:首页 > 其它

批量添加删除用户方法三

2016-01-26 10:20 453 查看
方法三给出三种。本质上没有什么区别。只是是否生成配置文件,需要命令的个数不同。
方法三——1

#!/bin/bash

file="user_passwd"

#if [ -f "$file" ]; then
#	file2="$file"`date + %Y%m%d`
#	mv $file  $file2
#fi
if [ -f "$file" ]; then
mv $file "$file"`date +%Y%m%d%H%M%S`
fi
touch "$file"

read -p "please input filename:" filename
read -p "please input number:" number
read -p "please input start number:" start_number
read -p "please input account number:" account_number

end_number=$(($start_number + $account_number - 1))

for  ((i=$start_number; i<=$end_number;i=i+1))
do
zero=''
len=${#i}
diff=$(($number - $len))
if [ "$diff" != "0" ];then
zeros=0000000000000000000000
zero=${zeros:0:$diff}
fi
user="$filename""$zero""$i"
echo "$user"":""$user" >> $file
done

cat "$file" | cut -d ":" -f 1 |xargs -n 1 useradd
pwunconv
chpasswd < $file
pwconv
exit 0

方法三——2

#!/bin/bash

read -p "please input filename:" filename
read -p "please input number:" number
read -p "please input start number:" start_number
read -p "please input account number:" account_number

end_number=$(($start_number + $account_number - 1))

for  ((i=$start_number; i<=$end_number;i=i+1))
do
zero=''
len=${#i}
diff=$(($number - $len))
if [ "$diff" != "0" ];then
zeros=0000000000000000000000
zero=${zeros:0:$diff}
fi
user="$filename""$zero""$i"
useradd $user
echo "$user" | passwd --stdin $user
done

exit 0

方法三——3

#!/bin/bash

read -p "please input filename:" filename
read -p "please input number:" number
read -p "please input start number:" start_number
read -p "please input account number:" account_number
read -p "please input flag sign(add or del):" flag

end_number=$(($start_number + $account_number - 1))

for  ((i=$start_number; i<=$end_number;i=i+1))
do
zero=''
len=${#i}
diff=$(($number - $len))
if [ "$diff" != "0" ];then
zeros=0000000000000000000000
zero=${zeros:0:$diff}
fi
user="$filename""$zero""$i"

if [ "$flag" == "add" ]; then
echo "$user will be added"
useradd $user
echo "$user" | passwd --stdin $user
elif [ "$flag" == "del" ]; then
echo "$user will be deleted"
userdel -r $user
else
echo " input error"
exit 1
fi
done

exit 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: