工作中经常会给新入职的开发人员配置svn的用户,虽然步骤简单,但是这种重复性的工作实在是做的要吐了,所以还是使用脚本来提高生产力,也为我们节省更多时间来做其他事情。
使用这个脚本需要提前配置好svn配置文件路径、svnserve路径、新用户默认密码以及管理员用户密码、svn根目录URL。执行脚本时输入用户名以及授权路径即可完成用户创建。
#!/bin/bash
# 默认密码
password="123456"
# svnserve路径
servedir="/home/svn/project"
# 配置文件路径
confdir="/home/svn/project/conf"
# 用户名
read -r -p "请输入用户名:" uname
# 判断用户是否存在
if grep "${uname}" ${confdir}/passwd; then
echo "用户${uname}已存在"
exit
fi
# 显示svn目录树,注意,此处需要配置svn管理员用户名:密码(admin:admin123)、根目录地址(http://localhost/svn/)
curl -u "admin:admin123" http://localhost/svn/ 2>/dev/null | grep "li" | awk -F '/\">|/</' 'BEGIN {print "/---"} {print " |---/" $2}' >svntree.out
echo -e "当前SVN目录树为:\n$(cat svntree.out)\n"
read -r -p "请为新用户指定目录,如指定需访问http://192.168.64.3/svn/SunDS,则输入:/SunDS:" authurl
# 判断目录是否存在
if ! grep "${authurl}" svntree.out; then
echo "${authurl}目录不存在"
exit
fi
#检查authz中是否配置目录,如果未配置,则创建目录
#if ! grep -E "\[$authurl\]" ${confdir}/authz; then
# echo "\[$authurl\]" >>${confdir}/authz
#fi
##创建svn账号
# 配置webpasswd
# -b Use the password from the command line rather than prompting for it.
# -n Don't update file; display results on stdout.
htpasswd -b -n "${uname}" ${password} >>${confdir}/webpasswd
# 配置passwd
echo "${uname}=$password" >>${confdir}/passwd
# 配置authz,用户权限默认rw
grep -E -n "\[$authurl\]" ${confdir}/authz | awk -F: '{print $1}' | xargs -I{} sed -i "{}a ${uname}=rw" ${confdir}/authz
# 重启svn
# svnpid=$(ps -ef | grep svnserve | grep -v grep | awk '{print $2}')
pgrep svnserve | xargs -i kill -15 {}
svnserve -d -r $servedir
echo "创建用户成功!"
欢迎大家关注我,更多Linux干货等着你!
?
|