Ubuntu上搭建SVN服务器全攻略(4)

7 设置SVN的权限

7.1 修改Apache的配置

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

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

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

<Location /svn >

DAV svn

SVNPath /home/svn

AuthType Basic

AuthzSVNAccessFile /home/svn/conf/authz

AuthName "welcome to subversion repository"

AuthUserFile /etc/subversion/passwd

#<LimitExcept GET PROPFIND OPTIONS REPORT>

Require valid-user

#</LimitExcept>

</Location>

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的权限配置很简单,但不是太方便,如果要针对子目录设置不同的权限,则需要将每个目录的权限都显式的指定。

8 参考文献

Ubuntu.html

附录A:远程修改SVN用户口令工具使用方法

参见

1、将文件ChangePasswd.cgi和ChangePasswd.ini 放到apche安装目录下的cgi-bin下

2、确认ChangePasswd.cgi 程序第1行 ,prel工具的位置   (我的:#!/usr/bin/perl -w)

3、修改ChangePasswd.cgi 第84行改成htpasswd所在的路径(我的:/project/apache/bin/htpasswd)

4、修改ChangePasswd.cgi 128行 ini文件改成完整路径(我的:/project/apache/cgi-bin/ChangePasswd.ini)

5、配置文件 ChangePasswd.ini 第2行authuserfile= 密码存放路径(我的:/svndata/svn-auth-file/passwd)

6、配置文件 ChangePasswd.ini 第3行logfile= 操作日志存放路径(我的:/project/apache/cgi-bin/ChangPasswd.log)

注意细节:

1、用htpasswd时 切勿用-m参数 如果以前用的话,可重新输入一次进行更新

2、ChangPasswd.log 必须有“w”写入权限

附录B:Ubuntu 8.10修改IP地址

参见:

执行命令:

sudo vi /etc/network/interface

第一步:屏蔽掉自动获取IP的设置

iface eth0 inet dhcp将这一行屏蔽掉

修改之后的内容如下:

# The primary network interface

auto eth0

#iface eth0 inet dhcp

第二步:添加静态IP的信息

# The primary network interface

iface eth0 inet static

address 192.168.0.10

netmask 255.255.255.0

gateway 192.168.0.1

也可以通过如下命令重启网卡,让新配置生效,好处是不影响其他网络接口。

$ sudo ifdown eth0

$ sudo ifup eth0

如果只是要临时改变IP地址,则不用修改interface.只用ifconfig使用即可,不过当系统重启动后,系统后会恢复interfaces中的配置上。

$ sudo ifconfig eth0 192.168.1.111 netmask 255.255.255.0

第三步:设置DNS

编辑 /etc/resolv.conf,设置dns

nameserver 202.96.134.133

nameserver 202.106.0.20

重启网络:/etc/init.d/networking restart

以上步骤完成之后只要重新启用一下网络就OK了.

附录C:Ubuntu下配置SSH服务

Ubuntu缺省没有安装SSH Server,可以使用以下命令安装OpenSSH:

sudo apt-get install openssh-server openssh-client

Ubuntu缺省安装了ssh client。

可以通过编辑 /etc/ssh/sshd_config 文件来配置 OpenSSH

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original

sudo chmod a-w /etc/ssh/sshd_config.original

配置完成后重新启动:

sudo /etc/init.d/ssh restart

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyfdfz.html