- 论坛徽章:
- 0
|
SCO UNIX 5.06下批量添加用户
#程序名: batchadduser.sh
#功 能: 批量增加用户
#日 期: 2005-11-17
#使用说明:
# 在root下使用
# chmod 777 batchadduser.sh
# batchadduser.sh informix stud 50
# 即添加stud1,stud2...stud50,组为informix的50个用户
add_user()
{
if [ ! {$user} ]; then
echo "07 无效用户名!"
return 1
fi
if [ ! {$user_dir} ]; then
echo "07 无效用户目录!"
return 1
fi
u_flag="N"
if [ `cat /etc/passwd|cut -f1 -d":"|grep ${user}|wc -l` -ne 0 ];then
setcolor red
echo "07 警告:系统中已经创建了${user}用户."
setcolor white
yn="0"
while [ $yn = "0" ]
do
setcolor yellow
echo " 是否要删除它的所有信息?(/y/n/q) c"
setcolor white
read yn
if [ X${user} = "X" ];then
yn="0"
continue;
fi
if [ $yn = "q" ]||[ $yn = "Q" ];then
echo "07 取消安装用户! ${user}."
sleep 1;
return 1;
fi
if [ $yn = "n" ]||[ $yn = "N" ];then
echo " 07 不删除原有数据可能会导致安装失败!"
echo " 安装过程中错,请将原有数据删除."
u_flag="T"
break
fi
if [ $yn = "y" ]||[ $yn = "Y" ];then
echo " 正在删除用户 ${user} 的原有信息."
userdel ${user}
rm -rf ${user_dir}
else
yn="0"
fi
done
fi
user_flag="F"
while [ ${user_flag} = "F" ];do
echo " 正在创建 ${user} 用户,请稍后...... "
if [ $u_flag = "N" ]; then
useradd -g $1 -G $1 -d ${user_dir} -m -s ksh ${user} 2>/dev/null
else if [ $u_flag = "T" ];then
useradd -g $1 -G $1 -d $user_dir -s ksh $user 2>/dev/null
fi
fi
if [ $? -ne 0 ]; then
echo "07 创建 ${user} 用户时出错."
echo " 是否再试一次?(y/n) c"
read yn
if [ X$yn = "X" ]; then
continue
fi
if [ $yn = "y" ]||[ $yn = "Y" ];then
continue
else
user_flag="T"
setcolor hi_white
echo "07 $user 用户创建失败!"
setcolor white
sleep 1
return 1
fi
else
user_flag="T"
passwd -d ${user} >/dev/null 2>&1
setcolor hi_white
echo " $user 用户创建完成!!! "
setcolor white
fi
done
}
clear
if [ $# -ne 3 ] then
echo " Usage:$0 Group User Number. "
exit
fi
n=1
setcolor green
echo " 开始执行"
setcolor brown
echo " ====================================== "
setcolor hi_white
echo " 创建用户开始...... "
setcolor white
groupadd $1
while [ $n -ne $3 ]
do
user=$2$n
user_dir=/usr/$user
add_user
n=`expr $n + 1`
done
echo " 执行完毕!!!"
setcolor white
#部分技术说明:
#1) 1>/dev/null 表示将命令的标准输出重定向到 /dev/null
#2) 2>/dev/null 表示将命令的错误输出重定向到 /dev/null
#3) >/dev/null 就是将标准输出和标准出错的信息屏蔽不显示
#4) &表示后台执行,你可以继续占有你的输入窗口
#5) 2>&1 就是将 stderr 并进 stdout 作输出
#6) 1>&2 或 >&2 就是将 stdout 并进 stderr 作输出
#7) command &m 把标准输出重定向到文件描述符m中
#9) command <&- 关闭标准输入
#10)$# 传递给shell script的参数个数
#11)$* 传递给shell script的参数
#12)$? 上一个命令的返回代码
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11054/showart_57628.html |
|