Ubuntu SVN服务器的搭建与配置

一、         安装

sudo apt-get install subversion

sudo apt-get install libapache2-svn

sudo apt-get install apache2

二、         增加组

sudo groupadd svn                  //增加组

sudo usermod–G svn –a admin         // 把用户admin添加到svn组中 (svn为自己的用户)

sudo usermod –G svn –a www-data    // 把apache用户添加到svn组中

三、  创建版本库

由于/home 分配的空间较大(1T),建议将版本库建立在/home 下。

sudo mkdir /home/svn

sudo chown –R root:svn svn

sudo chmod –R g+rws svn

reboot

cd /home/svn

文件夹建好了以后,我们就可以在svn目录下面创建仓库了,当然也可以在它的子目录下创建仓库,为了便于项目的管理,建议在svn的子目录下创建仓库。

例如:有“Embed”项目,项目中有 软件 和 硬件 两个分支,那么我们可以在svn下建立 embed目录: mkdir embed (注意,这个时候不需要用sudo 了)。然后在 embed 目录下再分别创建 solftware 和 hardware两个仓库。

cd embed

svnadmin create /home/svn/embed/solftware

cd solftware

仓库创建好后,会自动生成一些文件和文件夹

其中 conf 文件夹下存放的是一些与控制访问有关的配置文件

四、         SVN 权限管理

A、需要用户名、密码登录

1、   修改 svnserve.conf

svnserve.conf是基础的配置,用于控制访问的权限将[general]前的注释与空格去掉,一定要去掉空格,否则到时客户端登录会出现"Section header must start in the first column的”的告警!最后此文件内容至少包含以下内容:

[general]

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

其中,anon-access = none禁止匿名登录,auth-access = write为署名登录获得写权限,password-db = passwd指定用户配置文件,authz-db = authz指定权限配置文件

2、   修改passwd

自动生成的passwd 文件格式如下:

[users]

# harry = harryssecret

# sally = sallyssecret

Harry 表示 用户名,harryssecret 为密码。这种方式是明文方式,也就是说如果要添加访问的用户的话只需按照格式添加用户名密码就可以。

例如添加 zhangsan 用户, 并且密码为123456,那么只需在后面添加如下内容即可:

zhangsan = 123456

但是,这种方法并不安全,下面介绍一种文件加密的方式设置登录的用户名和密码。

1、备份原始的passwd 文件: cp passwd passwd-bak

2、创建新的加密的passwd文件, 并且添加用户名和密码:

htpasswd  -cm passwd zhangsan

如图所示,输入密码后登录用户的用户名和密码就创建好了。下面我们来看一下passwd 文件里面的内容是什么。

现在显示的内容就不是之前的明文了,说明达到了加密的效果。

如果需要添加另外离歌用户名和密码,可以执行一下命令:

htpasswd  passwd zhangsan

3、修改authz

修改完登录方式,增加登录的用户名和密码后,下面我们将进一步设置仓库中文件夹的访问权限。

假设在passwd中设置了3个用户,分别是 zhangsan、 lisi、 wangwu,在仓库solftware下有三个目录,分别是: pro1, pro2, pro3 。那么其访问权限可设置如下方式。

[groups]

everyone = zhangsan, lisi, wangwu

group1 = zhangsan

group2 = lisi

group3 = wangwu

[solftware:/]

* = r     说明:/svn/embed/solftware/z 对所有用户都只有只读权限

也可写成 @everyone = r

[solftware:/pro1]

@group1 = rw   说明:zhangsan 可读可写

也可写成 zhangsan = rw

@group2 = r     说明:lisi 只读

也可写成 lisi = r

@group2 = r     说明:wangwu 只读

也可写成 wangwu = r

注意:如果对文件夹不做设置的话,默认为没有访问权限

4、修改 sudo vi /etc/apache2/mods-enable/dav_svn.conf

<Location /svn/embed/solftware >

DAV svn

SVNPath /home/svn/embed/solftware

AuthType Basic

AuthzSVNAccessFile /home/svn/embed/solft/conf/authz

AuthName "welcome to subversion repository"

AuthUserFile /home/svn/embed/solftware/passwd

#<LimitExcept GET PROPFIND OPTIONS REPORT>

Require valid-user

#</LimitExcept>

</Location>

注意:

1、每新建一个仓库的时候,都在该文件下添加类似上面的代码,只需把红色部分内容改成新建仓库的路径即可。

2、每新建一个仓库的时候都执行以下命令

sudo vi dav_svn.conf

cd /home/svn/embed

sudo chmod -R g+rws xxx(版本库)

3:sudo /etc/init.d/apache2 restart

B、设置匿名访问

有时候我们需要设置一些公共目录,使得所有人都能够进行访问,使用上面的设置方法当然也可以实现,只需要把该目录设置为所有的人都可读可写即可,但是,如果这样做的话就显得很麻烦了,假如一个公司有100人的话,那咱们还得设置100个用户,这样做的话就显得有些多余了。下面,咱们来看看简单的设置方法。

1、创建新的版本库(hard)

2、执行下面命令 sudo chmod –R g+rws hard

3、在/etc/apache/mods-enable/dav_svn.conf 增加一下代码即可

<Location /embed/hard>

DAV svn

SVNPath /home/svn/embed/hard

AuthType Basic

Authname "polarbear"

</Location>

C、如何在版本库中创建文件夹

首先,如果我们只是简单的在版本库中执行mkdir命令创建文件夹的话,在客户端上checkout的时候是不显示新创建的文件夹的。可是,假如这个版本库(hard)中需要有三个文件夹,比如分别为:src、lib、usr,而且我们又希望用户在客户端checkout的时候能够看到相应的文件夹,那么这个时候该怎么办呢?执行以下命令即可:

1、svnadmin create hard

2、sudo chmod –R g+rws hard

3、cd hard

4、mkdir src lib usr

5、svn import –m “” src http://192.168.86/hard/src

6、svn import –m “” lib http://192.168.86/hard/src

7、svn import –m “” usr http://192.168.86/hard/src

 

第 4、5、6、7步骤,还可以用下面的方法实现

Svn mkdir –m “” usr http://192.168.86/hard/src

svn mkdir –m “” lib http://192.168.86/hard/lib

svn mkdir –m “” lib http://192.168.86/hard/usr

双引号内可以为空,也可以填入对文件夹的说明。

注意:如果有用户反映提交的时候出现类似“Can't open file 'D:\Reositories\Doc\db\txn-current-lock':拒绝访问。”这样的错误提示,则很可能是在创建仓库后没有执行sudo chmod –R g+rws hard命令。

Ubuntu SVN服务器的搭建与配置(转)的更多相关文章

  1. SVN服务器本地搭建与使用

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6623026.html  使用SVN进行代码管理,需要搭建服务端资源库,然后在使用SVN的电脑安装SVN客户端或 ...

  2. svn服务器的搭建备份和还原和svnmanager的使用

    svn服务器的搭建备份和还原和svnmanager的使用 一.svn服务端软件的安装和配置 1.安装svn版本库软件 # yum install -y subversion 2.建立svn版本库数据存 ...

  3. centos7下SVN服务器如何搭建

    Centos7 搭建svn服务器 linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(ce ...

  4. linux(centos7)下SVN服务器如何搭建

    linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路! ...

  5. svn 服务器的搭建以及客户端的使用

    1.svn 服务器的搭建以及客户端的使用,安装见下面的博客 https://blog.csdn.net/zh123456zh789/article/details/80921179 说明:服务器只是用 ...

  6. svn 服务器的搭建 on Ubuntu

    Subversion 如何在Ubuntu下安装配置Subversion服务器.已经配置好,不过没有配置开机自启动, 需要的时候,使用如下命令开启svn服务svnserve -d  -r  /opt/s ...

  7. Linux SVN服务器的搭建配置及分支的创建与合并

    第一步:通过yum命令安装svnserve,命令如下: >yum -y install subversion 若需查看svn安装位置,可以用以下命令: >rpm -ql subversio ...

  8. svn服务器快速搭建及简单配置

    http://www.360doc.com/content/11/0711/19/5131531_132950891.shtml 简介Svn已经不容质疑的成为了一款流行的代码控制工具,但是你是否还在为 ...

  9. Windows下SVN服务器的搭建步骤

    1.下载svn服务端和客户端 服务端VISUALSVN SERVER:https://www.visualsvn.com/ 客户端TortoiseSVN:https://tortoisesvn.net ...

随机推荐

  1. JavaScript 中的不可变对象(Immutable Objects)

    默认情况下,JavaScript 中的对象是可变的.我们可以更改原始值(字符串,数字等)和对象.我们来看看这个对象: let obj = { num: , obj: { content: " ...

  2. Mybatis中动态SQL多条件查询

    Mybatis中动态SQL多条件查询 mybatis中用于实现动态SQL的元素有: if:用if实现条件的选择,用于定义where的字句的条件. choose(when otherwise)相当于Ja ...

  3. Python学习之路上的几个经典问题

    1.python有三元运算符语法(类似C语言的"?")么? 语法如下: [on_true] if [expression] else [on_false] 如果[expressio ...

  4. Windows安装和配置Tomcat

    1 从http://tomcat.apache.org下载Tomcat压缩包,我这里下的版本是7.0.67.   2 将Tomcat压缩包解压缩到任意路径下,我这里的解压缩路径为E:\tomcat-7 ...

  5. json字符串 与 json对象 的相互转换

    var obj=JSON.parse(jsonstr); // 将json字符串转换成json对象 var str=JSON.stringify(jsonobj); // 将json对象转换成json ...

  6. [Erlang]Erlang经常使用工具解说

    原创文章,转载请注明出处:服务器非业余研究http://blog.csdn.net/erlib 作者Sunface 联系邮箱:cto@188.com 但凡有图形界面的都须要linux系统安装了wx图形 ...

  7. MyCAT学习总结

    MyCAT介绍 简单的说,MyCAT就是: 一个彻底开源的,面向企业应用开发的“大数据库集群” 支持事务.ACID(指数据库事务正确执行的四个基本要素的缩写.包含:原子性(Atomicity).一 ...

  8. 修改PHP上传文件的大小限制

    Warning: POST Content-Length of 35052172 bytes exceeds the limit of 8388608 bytes in Unknown on line ...

  9. Spark修炼之道——Spark学习路线、课程大纲

    课程内容 Spark修炼之道(基础篇)--Linux基础(15讲).Akka分布式编程(8讲) Spark修炼之道(进阶篇)--Spark入门到精通(30讲) Spark修炼之道(实战篇)--Spar ...

  10. struts2 页面向Action传参方式

    1.基本属性注入 我们可以直接将表单数据项传递给Action,而Action只需要提供基本的属性来接收参数即可,这种传参方式称为基本属性注入.例如 jsp页面: <s:form method=& ...