免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1519 | 回复: 0

SCO UNIX 5.06下批量添加用户 [复制链接]

论坛徽章:
0
发表于 2005-11-18 15:22 |显示全部楼层

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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP