安全和权限
- 对于以svnserve -d启动的服务器,修改代码库目录/conf/svnserve.conf,主要步骤:(在配置文件中,变量前不要有空格。)
1) 对于svnserve.conf,注意[general]段,其中4项的主要含义:
Ø anon-access 定义匿名用户的权限(write,read,none)。
Ø auth-access 定义认证过用户的权限(write,read,none)
Ø password-db 定义用户密码列表文件名
Ø realm 一般是版本库的uuid。如果有2个版本库的这个属性一样,那么password-db的值也必须一样。反之亦然。
2) 定义用户密码列表文件内容,格式:
[users]
用户名=密码,注意这个是大小写敏感的。
3) 启动服务器,在提示用户输入安全信息时,缺省是用户的OS的登录名,此时直接提示输入密码。如果密码不对,则会提示输入用户名,然后是密码。
例子:
svnserve.conf
|
[general]
### 禁止匿名用户访问
anon-access = none
### 验证过的用户具有读写权限
auth-access = write
### 定义用户密码列表文件名文件名为
userlist.txt
password-db = userlist.txt
### 定义
realm
realm = My First Repository
|
用户密码列表文件名
(userlist.txt)
|
[users]
foxgem1=foxgem1
|
对于这种方式,无法定义对于代码库下具体目录的权限。如果有这个需要,那么可以采用与Apache2集成的方式解决。
- 对于与Apache2集成的服务器,修改httpd.conf,主要步骤:(需要在Apache2中配置mod_authz_svn,建议先安装Apache2,再安装Subversion。此处主要是利用Apache2对于目录的访问控制,可以从Apache2的手册中获得更多的信息。)
1) 使用htpasswd建立userlist。如果文件不存在,那么使用htpasswd -cm;文件存在,则使用htpasswd -m。其中c代表create;m代表使用MD5加密口令。如:
$ ### First time: use -c to create the file
$ ### Use -m to use MD5 encryption of the password, which is more secure
$ htpasswd -cm /etc/svn-auth-file harry
New password: *****
Re-type new password: *****
Adding password for user harry
$ htpasswd /etc/svn-auth-file -m sally
New password: *******
Re-type new password: *******
Adding password for user sally
2) 在httpd.conf中的<location>,2种使用方式:
Ø 只允许指定用户
<Location /svn>
DAV svn
SVNParentPath /usr/local/svn
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>
Ø 对于指定操作之外的用户,应用权限认证
<Location /svn>
DAV svn
SVNParentPath /usr/local/svn
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /path/to/users/file
# 对于get操作之外,需要验证。
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
3) 以上2步建立了和svnserve -d相同的访问控制。如果要应用目录控制,那么:
a) 建立目录访问策略文件,文件格式与svnserve.conf的语法类似。对于每个要控制的路径:
[repos-name:path]或[path]
username= (r,rw)
如果没有提及用户,那么就没权限;如果指明用户,但是等号右边什么也不写,即是显式的拒绝。如果左边使用*,则表示所有的用户。对于使用了SVNParentPath,需要指明repos-name。否则,可以省略。在文件中还可以使用[groups]建立组,例子:
[groups]
calc-developers = harry, sally, joe
paint-developers = frank, sally, jane
everyone = harry, sally, joe, frank, sally, jane
[calc:/projects/calc]
###使用时注意,组名前有@。
@calc-developers = rw
[paint:/projects/paint]
@paint-developers = rw
jane = r
b) 在<location>中使用AuthzSVNAccessFile,典型的3种配置方式:
方式一:允许匿名存取
<Location /repos>
DAV svn
SVNParentPath /usr/local/svn
AuthzSVNAccessFile /path/to/access/file
</Location>
方式二:不允许匿名存储
<Location /repos>
DAV svn
SVNParentPath /usr/local/svn
AuthzSVNAccessFile /path/to/access/file
# 只有认证用户可以存取
Require valid-user
# 认证方式
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /path/to/users/file
</Location>
方式三:方式1和2的混合模式
<Location /repos>
DAV svn
SVNParentPath /usr/local/svn
AuthzSVNAccessFile /path/to/access/file
# 先尝试匿名,如果不行再尝试认证用户
Satisfy Any
Require valid-user
# 认证方式
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /path/to/users/file
</Location>
例子:
httpd.conf
|
<Location /repo>
DAV svn
svnpath D:/studycases/subversion/repository
AuthzSVNAccessFile D:/studycases/subversion/pathright.txt
Satisfy Any
Require valid-user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile D:/studycases/subversion/svnuser.txt
</Location>
|
用户密码列表文件名
(svnuser.txt)
|
foxgem:$apr1$kY/…..$rXDeLPlm9b0uacF7zM.dl.
(注意这是使用htpasswd产生的)
|
目录访问策略文件
(pathright.txt)
|
[/project]
foxgem= r
[/test]
foxgem=rw
|
分享到:
相关推荐
- 安装Apache服务器以及两个关键模块:`mod_dav_svn`(用于支持Subversion的DAV协议)和`mod_authz_svn`(用于权限管理)。 - 编辑Apache的配置文件`httpd.conf`,加载这两个模块。添加如下行: ``` LoadModule ...
1. **安装mod_dav_svn和mod_authz_svn**:这两个模块允许Apache与SVN通信并进行权限管理。在Linux上,可以通过包管理器(如apt或yum)安装。在Windows上,它们通常包含在SVN安装包中。 2. **创建SVN仓库**:在...
总之,Apache配置SVN和Subversion权限控制,以及Windows 2008上的FTP服务器配置,涉及到多个层面的技术集成。正确配置后,不仅可以实现代码仓库的高效管理,还能保障团队成员的安全协作。务必注意文件路径、用户权限...
这里指定了SVN仓库位于F:/svn/kettle-4.0-src目录,设置了基本的认证方式,定义了认证名和密码文件以及权限配置文件的位置,并规定了必须是有效用户才能访问。 6. 创建SVN用户和权限:使用htpasswd命令行工具创建...
通过以上步骤,我们可以在Windows环境下成功地安装和配置SVN及Apache服务器,实现一个基本的版本控制系统。这种配置不仅可以满足小型团队的需求,还能够为大型项目提供稳定的版本控制环境。随着项目的不断发展,还...
本配置说明主要针对Apache 2.2.29和Subversion 1.8.13版本进行安装和配置,以实现SVN仓库的跨版本库迁移,并保留提交日志。 首先,我们需要准备以下软件包: 1. Apache HTTP Server(httpd-2.2.29) 2. Subversion...
在Windows环境下,基于Apache搭建SVN(Subversion)服务器是一个常见的选择,因为它提供了稳定且功能丰富的版本控制系统。以下是一份详细的教程,涵盖了所需软件、安装步骤以及集成过程。 ### 一、需要的软件 1. *...
Apache Subversion(简称 SVN)是一个开源的版本控制系统,用于管理和跟踪文件和目录的变更。它允许团队成员协同工作,共享和追踪项目代码的不同版本。下面是一些关于 Apache Subversion 的要点: 版本控制:SVN ...
5. 创建权限配置文件authz,在SVN的conf目录下,定义不同用户和组的访问权限。 完成Apache配置后,需要设置SVN仓库。在D:\SVN下创建一个名为WWW的目录,然后在命令行中切换到SVN的BIN目录,运行`svnadmin create D:...
【描述】虽然描述为空,但我们可以推测博主可能分享了他在配置SVN与Apache服务器过程中的经验和心得,可能包括了一些常见问题的解决方案和最佳实践。 【标签】:“源码”和“工具”这两个标签表明了主题涉及的是与...
Apache提供了一个稳定且可高度配置的平台,可以方便地集成SVN,实现代码仓库的版本控制、权限管理和协作功能。 Subversion是一个开源的版本控制系统,用于管理文件和目录的变更历史。它允许团队成员协同工作,同时...
Apache和Subversion(通常简称为SVN)是两个在软件开发领域广泛应用的工具。Apache是一个开源的Web服务器,而Subversion则是一个版本控制系统,用于跟踪和管理代码的变化。这篇文章将深入探讨如何将这两个工具集成,...
在安装完成后,我们需要进行一些基本的配置和设置,以确保 SVNManager 的正确运行。这些配置和设置包括创建数据库、设置访问权限、配置 svnmanager 等方面的内容。 SVNManager 配置详细说明文档旨在提供一个详细的...
在开始Apache与Subversion(SVN)服务器的配置之前,确保已正确安装Apache Web服务器和Subversion。本指南将详细介绍如何在Windows环境下配置Apache与Subversion,以便通过Web方式访问版本控制系统。 **所需软件:*...
关于用户和权限的具体配置,可以参考以下链接: - [配置用户和权限](http://www.cnblogs.com/eastson/p/6051269.html) - [SVN服务器部署](http://www.cnblogs.com/Sungeek/p/6905102.html) 以上步骤详细介绍了如何...
【概述】 ...以上就是Ubuntu环境中配置SVN+Apache+SSL的详细步骤,包括安装、配置、权限设置以及SSL安全连接的建立。通过这样的设置,你的团队可以安全地协作开发项目,同时确保代码仓库受到保护。