自动生成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
相关阅读:
- 缺乏配置管理造成的常见问题 (hjjlearning, 2008-7-17)
- VSS管理入门 (breezeforever, 2008-7-18)
- 在虚拟机上安装TestDirector8.0 遇到的问题 (ganlan, 2008-7-26)
- 监视你的配置管理数据库 (caption, 2008-7-31)
- Oracle配置本地Net服务名 (breezeforever, 2008-8-05)
- 数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名 (breezeforever, 2008-8-05)
- 软件配置管理(CN) Google讨论组 (achinaren, 2008-8-11)
- 配置管理之路 (achinaren, 2008-8-11)
- 软件配置管理提高业务价值的七个关键因素 (caption, 2008-8-18)
- 代码发布简易流程 (icecry_0205, 2008-8-28)
收藏
举报
TAG:
配置管理
cvs