隆多抢篮板:Ubuntu上搭建SVN服务器全攻略

来源:百度文库 编辑:九乡新闻网 时间:2024/04/27 17:32:56

改组文件: sudo vi /etc/group。

然后需要注销(我都是直接重新启动)再登录以便能够真正成为 subversion 组的一员。

4.3 创建SVN仓库

现在执行下面的命令

# cd /home

# sudo mkdir svn

#/usr/local/svn# sudo chown -R www-data:subversion svn

#/usr/local/svn# sudo chmod g+rwx svn -R

最后的一条命令赋予组成员对所有新加入文件仓库的文件拥有相应的权限。

下面的命令用于创建 SVN 文件仓库:

#sudo svnadmin create /home/svn

4.4 配置Apache服务器

先备份一下Apache2的配置文件,执行如下命令:

#/usr/local/svn# sudo cp -R /etc/apache2 /etc/apache2_bak

通过 WebDAV 协议访问 SVN 文件仓库,您必须配置您的 Apache 2 Web 服务器。您必须加入下面的代码片段到您的 /etc/apache2/mods-available/dav_svn.conf中:(加在文件最后面即可)

DAV svn

SVNPath /home/svn

AuthType Basic

AuthName "welcome to subversion repository"

AuthUserFile /etc/subversion/passwd

#

Require valid-user

#

如果需要用户每次登录时都进行用户密码验证,请将两行注释掉。

当您添加了上面的内容,您必须重新启动 Apache 2 Web 服务器,请输入下面的命令:

sudo /etc/init.d/apache2 restart

接下来,您需要创建 /etc/subversion/passwd 文件,该文件包含了用户授权的详细信息。要添加用户,您可以执行下面的命令:

sudo htpasswd -c /etc/subversion/passwd superman

它会提示您输入密码,当您输入了密码,该用户就建立了。您可以通过下面的命令来访 问文件仓库:

你还可以继续创建其他用户,但是不能再用-c选项了,因为-c选项表示创建一个新 的用户授权文件,一旦选用,原有的授权文件就被覆盖了。

sudo htpasswd /etc/subversion/passwd user_name

此时,应该就可以通过web方式访问svn服务器了。在浏览器的地址栏输入 http://192.168.19.3/svn/会弹出用户验证的窗口:

输入正确的用户名和口令后,就能看到如下界面: 

7 设置SVN的权限

7.1 修改Apache的配置

为了实现细粒度的权限控制,可以通过修改svn的仓库目录下的 conf/authz文件来实现。在此之前,需要告诉Apache,使用该文件

sudo vi /etc/apache2/mods-available/dav_svn.conf

修改后如下,其中蓝色字体为新添加的内容:

DAV svn

SVNPath /home/svn

AuthType Basic

AuthzSVNAccessFile /home/svn/conf/authz

AuthName "welcome to subversion repository"

AuthUserFile /etc/subversion/passwd

#

Require valid-user

#

7.2 认证文件的配置

sudo vi /home/svn/conf/authz

文件内容类似如下:

[groups]

admin = admin

dev1 = jack, kate

dev2 = zbh2342, yingjianhh45, tantt, arei22

docs = bob, jane, mike

training = zak

# Default access rule for ALL repositories

# Everyone can read, admins can write, Dan German is excluded.

[/]

* = r

@admin = rw

dangerman =

# Allow developers complete access to their project repos

[project:/]

* = r /其他用户只有读权限

@admin = rw /admin,dev1这个两个组有读写权限

@dev1 = rw

对子项目的控制

[project:/DDWap] /对project/DDWap子目录有读写权限,下面类似。

@dev2 = rw

[project:/DDAdmin]

@dev2 = rw

[project:/DDSync]

@dev2 = rw

[project:/DDWeb]

@dev2 = rw

[project:/DDWeb]

@dev2 = rw

[project:/docs]

@dev2 = rw

[project:/thirdparty]

@dev2 = rw

通过实践,感觉Apache的权限配置很简单,但不是太方便,如果要针对子目录设 置不同的权限,则需要将每个目录的权限都显式的指定。