是因为我是直接以 useradd 来新增的, 所以,即使不了解 UID ,也是可以适用的啦~整支程序的特色是:
? 默认不允许纯数字方式建立账号;
? 可加入年级来区分账号;
? 可设定账号的起始号码与账号数量;
? 有两种密码建立方式,可以与账号相同或程序自行以随机数建立密码文件。
执行方法也简单的要命~请自行参考的啦!不再多说~使用时请注意,不要在公家使用的主机上面进行测试,因为..... 这支
程序会大量建立账号嘛!^_^
#!/bin/bash
#
# 这支程序主要在帮您建立大量的账号之用,更多的使用方法请参考:
#
#
# 本程序为鸟哥自行开发,在 CentOS 5.x 上使用没有问题,
# 但不保证绝不会发生错误!使用时,请自行负担风险~
#
# History:
# 2005/09/05 VBird 刚刚才写完,使用看看先~
# 2009/03/04 VBird 加入一些语系的修改与说明,修改密码产生方式 (用
openssl)
export LANG=zh_TW.big5
export PATH=/sbin:/usr/sbin:/bin:/usr/bin
accountfile="user.passwd"
# 1. 进行账号相关的输入先!
echo ""
echo "例如我们昆山四技的学号为: 4960c001 到 4960c060 ,那么:"
echo "账号开头代码为 :4"
echo "账号层级或年级为 :960c"
echo "号码数字位数为(001~060):3"
echo "账号开始号码为 :1"
echo "账号数量为 :60"
echo ""
read -p "账号开头代码 ( Input title name, ex> std )======> " username_start
read -p "账号层级或年级 ( Input degree, ex> 1 or enter )=> " username_degree
read -p "号码部分的数字位数 ( Input \# of digital )======> " nu_nu
read -p "起始号码 ( Input start number, ex> 520 )========> " nu_start
read -p "账号数量 ( Input amount of users, ex> 100 )=====> " nu_amount
read -p "密码标准 1) 与账号相同 2)随机数自定义 ==============> " pwm
if [ "$username_start" == "" ]; then
echo "没有输入开头的代码,不给你执行哩!" ; exit 1
fi
# 判断数字系统
testing0=$(echo $nu_nu | grep '[^0-9]' )
testing1=$(echo $nu_amount | grep '[^0-9]' )
testing2=$(echo $nu_start | grep '[^0-9]' )
if [ "$testing0" != "" -o "$testing1" != "" -o "$testing2" != "" ]; then
echo "输入的号码不对啦!有非为数字的内容!" ; exit 1
fi
if [ "$pwm" != "1" ]; then
pwm="2"
fi
# 2. 开始输出账号与密码档案!
[ -f "$accountfile" ] && mv $accountfile "$accountfile"$(date +%Y%m%d)
nu_end=$(($nu_start+$nu_amount-1))
for (( i=$nu_start; i<=$nu_end; i++ ))
do
nu_len=${#i}
if [ $nu_nu -lt $nu_len ]; then
echo "数值的位数($i->$nu_len)已经比你设定的位数($nu_nu)
还大!"
echo "程序无法继续"
exit 1
fi
nu_diff=$(( $nu_nu - $nu_len ))
if [ "$nu_diff" != "0" ]; then
nu_nn=0000000000
nu_nn=${nu_nn:1:$nu_diff}
fi
account=${username_start}${username_degree}${nu_nn}${i}
if [ "$pwm" == "1" ]; then
password="$account"
else
password=$(openssl rand -base64 6)
fi
echo "$account":"$password" | tee -a "$accountfile"
done
# 3. 开始建立账号与密码!
cat "$accountfile" | cut -d':' -f1 | xargs -n 1 useradd -m
chpasswd < "$accountfile"
pwconv
echo "OK!建立完成!"
如果有需要建立同一班级具有同一群组的话,可以先使用 groupadd 建立群组后, 将该群组加入『 cat "$accountfile" | cut
-d':' -f1 | xargs -n 1 useradd -m -g groupname 』那行!这支脚本可以在底下连结下载:
?
如果仅是测试而已,想要将刚刚建立的使用者整个删除,则可以使用如下的脚本来进行删除!
[root@www ~]# vi delaccount2.sh
#!/bin/bash
usernames=$(cat user.passwd | cut -d ':' -f 1)
for username in $usernames
do
echo "userdel -r $username"
userdel -r $username
done
[root@www ~]# sh delaccount2.sh
总之,账号管理是很重要的!希望上面的说明能够对大家有点帮助啦!
阅读(783) | 评论(0) | 转发(0) |