在阅读本文之前,请确定你已经知道了Subversion基本的服务器管理,知道了svnserve或Apache的配置,清楚如何设置用户和密码。关于svnservee的配置可以看我们的《Subversion快速入门教程》和《用Apache和Subversion搭建安全的版本控制环境》,对于一些细节情参考《使用Subversion进行版本控制》。
作为一个配置管理员,需要管理用户的权限,本文主要介绍了使用Subversion的授权文件“authz-db”,同时为了叙述的清晰,我首先澄清一些概念。
很多情况下,往往一个库是不够的,我们会按项目,或按前编程语言类别,亦或是分工来建立多个库,而我们又想使用同一套认证,授权方案。那么本文就是基于这样的情形做介绍。
1. 认证(Authentication)和授权(Authorization)
这两个术语经常一起出现。其中认证的意思就是鉴别用户的身份,最常见的方式就是使用用户名和密码,授权就是判断用户是否具备某种操作的权限。在Subversion里提供了“authz-db”文件,实现了以路径为基础的授权,也就是判断用户是否有操作对应路径的权限。在Subversion 1.3之后,svnserve和Apache一样都可以使用“authz-db”文件。
2. SVN Serve下的配置文件
本文使用Subversion 1.7.9 http://sourceforge.net/projects/win32svn/files/1.7.9/apache22/
因为本文是以svnserve为例的,所以先介绍一下多版本库目录的结构:
─Repo
├─JavaRepo
│ ├─conf
│ ├─db
│ │ ├─revprops
│ │ │ └─0
│ │ ├─revs
│ │ │ └─0
│ │ ├─transactions
│ │ └─txn-protorevs
│ ├─hooks
│ └─locks
└─PHPRepo
├─conf
├─db
│ ├─revprops
│ │ └─0
│ ├─revs
│ │ └─0
│ ├─transactions
│ └─txn-protorevs
├─hooks
└─locks
JavaRepo/conf下的authz与passwd与PHPRepo/conf下的authz与passwd 拷贝另一目录下的一套(authz,passwd)到Repo目录下,其余的删掉即可。
分别修改配置文件conf/svnserve.conf
### The password-db option controls the location of the password ### database file. Unless you specify a path starting with a /, ### the file's location is relative to the directory containing ### this configuration file. ### If SASL is enabled (see below), this file will NOT be used. ### Uncomment the line below to use the default password file. password-db = ../../passwd ### The authz-db option controls the location of the authorization ### rules for path-based access control. Unless you specify a path ### starting with a /, the file's location is relative to the the ### directory containing this file. If you don't specify an ### authz-db, no path-based access control is done. ### Uncomment the line below to use the default authorization file. authz-db = ../../authz
将配置文件指向上上层目录
确保admin可以读写任何库;java开发人员只能读写JavaRepo;php开发人员只能读写PHPRepo,测试人员两个库都仅有可读权限;匿名用户不可访问任何库
修改passwd
[users] #php开发 ch = ch0126 qh = qh0126 #java开发 hb = hb0126 qs = qs0126 #测试 ry = ry0126
修改authz
[groups] admin_group = chaohai java_group = haibao,qiushui php_group = qinghai test_group = ruoye # 指定所有的版本库默认只读,admin_group组可读写 [/] * = none @admin_group = rw # 指定对版本库JavaRepo根目录的权限 [JavaRepo:/] # 未授权用户没有任何权限 * = none @admin_group = rw @java_group = rw @test_group = r # 指定对版本库PHPRepo根目录的权限 [PHPRepo:/] # 未授权用户没有任何权限 * = none @admin_group = rw @php_group = rw @test_group = r
创建windows服务
sc create SVNService binpath= "D:\SoftwareDevelopment\Subversion\svn-win32-1.7.9\bin\svnserve.exe --service -r D:\Repositories\SVN\Repo" displayname= "SVNService" depend= Tcpip start= auto
SC SVNService start
相关推荐
根据提供的文档内容,本文将详细解析Subversion在Windows环境下的配置流程及关键步骤,包括安装、设置、用户管理以及客户端的使用等。 ### 一、Subversion简介 Subversion(简称SVN)是一种集中式的版本控制系统,...
这个配置只是一个基础设置,实际生产环境中可能需要更复杂的权限控制、SSL加密等高级配置。Subversion提供了丰富的选项来满足各种需求,例如,可以使用`svnserve`作为独立的服务器进程,或者通过防火墙规则限制访问...
用于管理和配置Subversion版本控制系统,集成了CollabNet Subversion和Apache HTTP Server,提供了一个用户友好的Web界面,使得在Windows和Linux(CentOS)平台上安装、配置和管理Subversion仓库变得更为简便。...
10. 文件锁定:Subversion支持文件锁定机制,防止多个用户同时编辑同一文件,以避免数据冲突。 11. 服务器配置:Subversion服务器可以通过Apache HTTP Server或Subversion自带的svnserve服务运行。配置包括设置访问...
本篇文章将深入探讨如何在服务器端配置SubVersion,特别是目录级或库级别的访问权限。 首先,我们需要进行的是服务器端的安装。这通常涉及下载并安装Subversion服务器软件,如Apache HTTP Server与mod_dav_svn模块...
Subversion的核心概念之一是“档案库”(Repository),它是一个中心化的存储库,用于存放所有文件的版本历史。每个档案库都有唯一的URL,用户通过这个URL与档案库进行交互。 ##### 2.2 版本控制模型 - **锁定-...
SubVersion(简称SVN)是一种广泛使用的版本控制系统,它能够跟踪文件和目录的变更,使多个用户协同工作在同一个项目上成为可能。本讲解将深入探讨SubVersion的基础概念、安装配置、基本操作以及在实际项目中的应用...
4. 文件锁定:防止多个用户同时编辑同一文件,确保数据一致性。 5. 完善的权限控制:通过Apache HTTP Server或其他Web服务器进行细粒度的访问控制。 6. 版本化的属性:除了文件内容,Subversion还可以跟踪文件和目录...
Subversion版本库URL 工作拷贝 修订版本 工作拷贝怎样跟踪版本库 混合修订版本的工作拷贝 更新和提交是分开的 混合修订版本很常见 混合版本很有用 混合版本有限制 总结 2. 基本使用 求助! 导入数据到你的版本库 svn...
TortoiseSVN则是Subversion的一个图形化客户端,它为Windows用户提供了友好的界面,使得版本控制操作更加直观易用。下面我们将详细介绍Subversion和TortoiseSVN的安装与配置过程。 一、Subversion的安装 1. 获取...
- **配置服务器**:设置版本库的位置,配置访问控制和权限。 - **客户端操作**:使用`svn co`检出工作副本,`svn ci`提交更改,`svn merge`进行合并,`svn switch`切换分支,`svn log`查看日志等命令。 - **Web...
4. 更好的锁机制:增强了文件锁定功能,防止多个用户同时编辑同一文件。 5. 客户端-服务器协议升级:1.8.x引入了新的协议版本,提高了数据传输效率。 三、Subversion服务器配置 1. 安装:下载并安装Subversion...
- **版本管理**:Subversion提供了一种有效的方式来管理多个版本的文件。用户可以轻松地恢复到任何特定的时间点的版本,这对于修复错误或者探索早期设计决策非常有用。 - **协作开发**:通过Subversion,多个开发者...
Subversion 是一个开源的版本控制系统,它用于管理文件和目录的变更历史,使得多人协作开发成为可能。在本文中,我们将深入探讨Subversion的安装过程,特别是在RHEL 6x和7x系统上的操作。 首先,理解Subversion的...
- 版本控制系统:记录文件和目录随时间变化的系统,允许用户回滚到以前的版本,查看历史更改,并管理多个开发者之间的协同工作。 - 工作副本:从版本库中检出的本地副本,用户在此进行日常编辑和提交操作。 - ...
以上操作基于多个在线资源,包括技术论坛的文章和技术文档,如中国Unix网的教程、SunFreeware网站的Subversion页面等,这些资源提供了详细的安装指南和实践技巧。 通过以上步骤,你可以在Linux环境下成功安装并配置...
Subversion(简称SVN)是一种广泛使用的开源版本控制系统,它允许开发者管理代码库,跟踪文件和目录的变化,并协同多人在同一个项目上工作。Subversion在IT行业中被许多企业和开源项目视为首选的版本控制工具,其...