自动生成CVS用户

上一篇 / 下一篇  2008-08-28 13:19:48 / 个人分类:配置管理

#!/bin/bash
#ALLUSER="name1:passwd1 name2:passwd2 ....."#用户名:密码
LOGNAME="creatUser.log"                     #日志文件名
HOMEDIR="/home/users"                       #新建用户的工作目录
ALLUSER="liyong:ironyagami zhanghua:123 chenzf:321 jiangjs:88031
`echo >>./$LOGNAME`
`echo >>./$LOGNAME`
`echo "****************************************" >>./$LOGNAME`
`date >> ./$LOGNAME`
`echo "****************************************" >>./$LOGNAME`
`echo >> ./$LOGNAME`
for user in $ALLUSER                        #遍历用户信息,取出用户名和密码         
do
     declare -a userInfo
     declare -a flag
     userInfo=($(echo $user|awk -F ':' '{print $0}'|sed "s/:/ /g"))
     name=${userInfo[0]}                    #用户名
     passwd=${userInfo[1]}                  #密码
#    echo $name
#    echo $passwd
     flag=($(grep $name /etc/shadow|awk -F ':' '{print $0}'|sed "s/:/ /g"))
     if [ -z "${flag[0]}" ] ; then
#creat user info 用户不存在则新建用户
     mkdir -p $HOMEDIR/$name                #新建工作目录
     chown $name:cvsroot $HOMEDIR/$name
    `echo "new user is creaing,the name is $name">>./$LOGNAME`
     useradd -s /sbin/nologin -d $HOMEDIR/$name -g ALLUSER $name >> ./$LOGNAME
     echo $passwd |passwd $name --stdin >> ./$LOGNAME
    `echo "user is created sucessfullly!!!" >>./$LOGNAME`
    `echo >> ./$LOGNAME`
 else
#modify user info 否则就修改用户信息
    mkdir -p $HOMEDIR/$name
    chown $name:cvsroot $HOMEDIR/$name
    `echo "$name is exsit,it will be modified">>./$LOGNAME`
    usermod -s /sbin/nologin -d $HOMEDIR/$name -g ALLUSER $name >> ./$LOGNAME
    echo $passwd |passwd $name --stdin >> ./$LOGNAME
    `echo "user is modified sucessfullly!!!" >>./$LOGNAME`
    `echo >> ./$LOGNAME`
 fi
done

`echo >>./$LOGNAME`
#creat /home/cvsroot/CVSROOT/passwd
CVSROOT="/home/cvsroot"
for user in $ALLUSER                 #在shadow中取出用户的密码信息,写入CVSROOT/passwd
do
        declare -a userInfo
        declare -a arr
        userInfo=($(echo $user|awk -F ':' '{print $0}'|sed "s/:/ /g"))
        name=${userInfo[0]}
        passwd=${userInfo[1]}
#       echo $name
#       echo $passwd
#       `echo "new passwd is added or modified in $CVSROOT/CVSROOT/passwd,the name #       is $name">>./$LOGNAME`
        arr=($(grep $name /etc/shadow|awk -F ':' '{print $0}'|sed "s/:/ /g"))
        flag=($(grep -n $name $CVSROOT/CVSROOT/passwd|awk -F ':' '{print $0}'|sed "s/:/ /g"))
#        echo ${flag[0]} #行号
 if [ -n "${flag[1]}" ] ; then              #存在则修改
       `echo $name is exsit,no change the passwd!!! >>./$LOGNAME`
       sed "${flag[0]} d" $CVSROOT/CVSROOT/passwd $CVSROOT/CVSROOT/passwd.copy
       mv -f $CVSROOT/CVSROOT/passwd.copy $CVSROOT/CVSROOT/passwd
       `echo the passwd is modified sucessfully!!! >>./$LOGNAME`
       `echo >> ./$LOGNAME`
 else                                       #不存在就直接写入
       `echo creating passwd for new user:$name !!! >>./$LOGNAME`
       `echo ${arr[0]}":"${arr[1]}":"$name >>$CVSROOT/CVSROOT/passwd`
       `echo ${arr[0]}":"${arr[1]}":"$name >>./$LOGNAME`
       `echo "passwd is created sucessfullly!!!" >>./$LOGNAME`
       `echo >> ./$LOGNAME`
 fi
done


TAG: 配置管理 cvs

 

评分:0

我来说两句

日历

« 2024-04-29  
 123456
78910111213
14151617181920
21222324252627
282930    

我的存档

数据统计

  • 访问量: 5551
  • 日志数: 5
  • 文件数: 1
  • 建立时间: 2008-08-28
  • 更新时间: 2008-08-29

RSS订阅

Open Toolbar