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. JS前端下载文本文件小技巧:1、download属性;2、借助Blob转换成二进制下载

    一.HTML download 与文件下载 如果希望在前端侧直接触发某些资源的下载,最方便快捷的方法就是使用HTML5原生的download属性,例如: <a href="large. ...

  2. 简单的混淆ID

    public class TestfuzzId { public static void main(String[] args) { int id = 123456; int p = id^Integ ...

  3. 【License】一张图该诉你各种License的含义?

    一张图该诉你各种License的含义:

  4. java中调用kettle转换文件

    java中调用kettle转换文件 通过命令行也能够调用,然后java中调用命令行代码也能够.这样没有和java代码逻辑无缝集成.本文说明kettle5.1中假设通过其它API和java代码无缝集成: ...

  5. 屏幕录像大师如何把LXE文件转换为EXE文件

    EXE 和 LXE 实际上是同一种格式,文件大小完全相同,可以快速相互转换.区别是EXE复制到其它电脑上可以直接播放,LXE需要播放器播放,我们提供LXE播放器,而且是完全免费的.EXE的好处是复制到 ...

  6. android之Activity.startManagingCursor方法详解

    在使用数据库操作查询数据后,如果是在Activity里面处理,那么很可能就会用到startManagingCursor()方法,在这里讲一下它的作用和使用注意事项. 调用这个方法,就是将获得的Curs ...

  7. k8s的Ingress

    一.Ingress简介 外部访问集群内的服务,可以通过NodePort或LoadBalancer(这通常由云服务商提供),还可以通过ingress访问. Ingress包含两个组件Ingress Co ...

  8. 【php】模板页面展示复选框已选中选项和数据

    写在最开始: 2)我们这里流程是编辑.修改 已经存储的数据. 1.[修改]功能页面: 2.代码:HTML <dt>民宿设施</dt> <dd><label&g ...

  9. Python 爬虫之 BeautifulSoup

    简介 Beautiful Soup提供一些简单的.python式的函数用来处理导航.搜索.修改分析树等功能.它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出 ...

  10. java -Xmx3550m -Xms3550m -Xmn2g -Xss128k -XX:+UseParallelGC -XX:MaxGCPauseMillis=100/虚拟机调优

    JVM的堆的内存, 是通过下面面两个参数控制的 -Xms 最小堆的大小, 也就是当你的虚拟机启动后, 就会分配这么大的堆内存给你 -Xmx 是最大堆的大小 当最小堆占满后,会尝试进行GC,如果GC之后 ...