ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Ubuntu下搭建SVN与Apache权限控制

2019-03-07 13:55:23  阅读:308  来源: 互联网

标签:SVN svn scm sudo share apache2 Ubuntu Apache data


1. 安装apache+svn

sudo apt-get install apache2 

sudo apt-get install subversion

sudo apt-get install libapache2-svn

sudo apt-get install apache2-utils

 

2. Apache配置

2.1 配置加密

      /etc/apache2/mods-enabled/authz_user.load添加

     LoadModule authn_file_module /usr/lib/apache2/modules/mod_authn_file.so

     LoadModule auth_basic_module /usr/lib/apache2/modules/mod_auth_basic.so

     LoadModule auth_digest_module /usr/lib/apache2/modules/mod_auth_digest.so

 

2.2 配置svn与apache关联

     /etc/apache2/mods-enabled/dav.load

    LoadModule dav_svn_module  /usr/lib/apache2/modules/mod_dav_svn.so

    LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so

 

2.3 设置端口准入,一般默认端口是80

     sudo ufw allow 80

 

3. SVN创建版本库与账号密码管理

3.1 创建版本库

     svnadmin create /share/data/svncode/test

3.2 创建用户名和密码,这里用htdigest

    htdigest -c  /share/data/scm/htdigest/passwd Tina Jacky

3.3 创建权限文件 test.txt

   touch /share/data/scm/svnadmin/test.txt

   编辑内容如下:

[groups]
admin=svnadmin,Jacky

[/]
*=
@admin=rw

 

4,关联apache和SVN

编辑sudo vim /etc/apache2/conf-enabled/svn.conf

<Location /test>
DAV svn
SVNPath /share/data/svncode/test
AuthType Digest
AuthName "Tina"
AuthUserFile /share/data/scm/htdigest/passwd
Require valid-user
AuthzSVNAccessFile /share/data/scm/svnadmin/test.txt
</Location>

5.重启apache

   sudo /etc/init.d/apache2 restart

6. 启动svn

   svnserve -d -r /share/data/svncode

   需要开机自运行的话写个脚本autosvn.sh,放到/root下内容如下:

   #!/bin/bash

   svnserve -d -r /share/data/svncode

   修改/etc/rc.local

  sudo vim /etc/rc.loacl

  最后行添加/root/autosvn.sh

7. windows安装客户端即可,在客户端输入http://192.168.1.107/test就可访问。同样在浏览器输入对应的IP地址也可访问

8.设置提交格式

   修改hooks/pre-commit

SVNLOOK=/usr/bin/svnlook

if [ -z "`$SVNLOOK log -t "$TXN" "$REPOS" | grep "Reason:"`" ]; then

echo "Please Refer to the following format:" 1>&2

echo "Reason: xxxx" 1>&2

echo "Auditor:xxxx" 1>&2

exit 1

fi



if [ -z "`$SVNLOOK log -t "$TXN" "$REPOS" | grep "Auditor:"`" ]; then

echo "Please Refer to the following format:" 1>&2

echo "Reason: xxxx" 1>&2

echo "Auditor:xxxx" 1>&2

exit 1

fi

9. 设置权限目录自动更新

 9.1 创建权限目录

svnadmin create /share/data/svncode/scm

9.2 创建权限文件

 touch /share/data/scm/svnadmin/scm.txt并配置权限参数

9.3  下载权限目录

svn co   http://192.168.1.107/scm --username=“Jacky”

9.4 svn.conf配置scm仓库以及权限

9.5 在scm/hookes/post-commit添加

SVN=/usr/bin/svn
scmupdate=/share/data/svn/scm/svmadmin
export LANG=en_US.UTF-8
$SVN up  --username Jacky --password passwd--no-auth-cache --non-interactive --force $scmupdate > /dev/null

9.6 重启apache ,这样每次权限目录更新,就会被及时更新

 

 

标签:SVN,svn,scm,sudo,share,apache2,Ubuntu,Apache,data
来源: https://blog.csdn.net/ccr1001ccr1001/article/details/88294442

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有