Linux-SVN交互式创建仓库、配置用户、权限的脚本

Shell Liemer_Lius 1323℃ 0评论

SVN的仓库创建,可以手动交互式来实现,脚本是自己写的,如有问题,欢迎指正。

#!/bin/bash
# 自动创建svn仓库, 分配权限.
cat << EOF
1. 该脚本会自动创建svn仓库;
2. 可以自定义用户和权限;
3. 无需重启svnserve服务, 更改会即可生效.
EOF

RETVAL () {
if [ $? -ne 0 ]; then
  echo "$OPT Error. Exit..."
  exit 7
fi
}

export LANG=zh_CN.UTF-8

SVNHOME=/var/svn/
[ ! -e $SVNHOME ] && mkdir $SVNHOME

# 测试subversion是否安装, 网络是否异常.
echo "测试subversion是否安装, 网络是否异常."
OPT=SoftwareAndNetwork
if ! rpm -q subversion &> /dev/null; then
  echo "SVN软件尚未安装."
  if ! ping www.baidu.com -w 1 -c 1 &>/dev/null; then
    echo "网络异常! 请先修复. 目前将退出脚本..."
    exit 6
  fi
  yum install -y subversion
fi
RETVAL

# 建立版本库.
echo "开始建立版本库..."
OPT=RepoCreate
read -p "请输入您要建立的版本库名称(例: Tomsvn): " REPONAME
svnadmin create $SVNHOME$REPONAME
RETVAL

# 添加用户和配置用户认证信息
echo "开始添加用户和配置用户和认证信息..."
OPT=UserCertificate
sed -i 's@# anon-access = read@anon-access = none@g' $SVNHOME$REPONAME/conf/svnserve.conf
sed -i 's@# auth-access = write@auth-access = write@g' $SVNHOME$REPONAME/conf/svnserve.conf
sed -i 's@# password-db = passwd@password-db = passwd@g' $SVNHOME$REPONAME/conf/svnserve.conf
sed -i 's@# authz-db = authz@authz-db = authz@g' $SVNHOME$REPONAME/conf/svnserve.conf
sed -i "s@# realm = My First Repository@realm = $REPONAME@g" $SVNHOME$REPONAME/conf/svnserve.conf

while :; do 
read -p "请输入您要添加的svn用户名称 (一次输入一个名称, 可以添加多个用户), 输入q来退出添加用户: " SVNUSER
if [ $SVNUSER == 'q' ]; then
  break
  echo "添加用户结束."
fi
read -p "请输入以上添加用户的密码: " PASSWD
echo "$SVNUSER = $PASSWD" >> $SVNHOME$REPONAME/conf/passwd
echo "添加SVN用户$SVNUSER成功."
done

echo "[$REPONAME:/]" >> $SVNHOME$REPONAME/conf/authz
while :; do
read -p "请输入要配置权限的svn用户名称 (一次配置一个, 可配置多次. 键入q来退出权限配置.): " AUTHUSER
if [ $AUTHUSER == 'q' ]; then
  break
  echo "配置用户权限结束."
fi
read -p "请输入以上要配置的用户的的权限 (只读: r; 读写: rw): " MODE
echo "$AUTHUSER = $MODE" >> $SVNHOME$REPONAME/conf/authz
echo "为$AUTHUSER用户配置权限成功."
done

if ! ( ps aux |grep svnserve |grep -v grep  &> /dev/null ); then
  echo "svnserve服务未开启, 尝试开启..."
  svnserve -d -r $SVNHOME
  if [ $? -ne 0 ]; then
    echo "svn服务开启失败, 请手动开启..."
    exit 8
  fi
fi
RETVAL

 

转载请注明:liutianfeng.com » Linux-SVN交互式创建仓库、配置用户、权限的脚本

喜欢 (1)

发表回复