`

Subversion权限控制手册

阅读更多

 

Subversion权限控制手册

        在文章《Subversion详细说明》中,我们曾经建立了一个版本控制仓库,现在打开这个版本控制仓库,让我们来看看这个目录结构,

我们会在目录结构中找到一个叫做conf的文件夹,打开这个文件夹,你会看到三个文件,分别叫做authz,passwd,svnserve.conf。

下面我们就来介绍一下这三个文件的作用格式什么。
首先,我们介绍passwd这个文件。
用你习惯的文本编辑器打开这个文件,你会看到一些使用“#”注释掉的说明,其中关键的就是在[users]下面,有
# harry = harryssecret
# sally = sallyssecret
样的样板代码,意思就是有两个用户,其中一个的用户名叫“harry”,密码为“harryssecret”,而另一个用户名为“sally”,密码为“sallyssecret”。我们接下来为我们的测试下面添加一些用户,这样方便我们下面的说明。比如,我要添加三个用户,一个叫做“nicholas”,密码为“nicholas”,第二个用户名为“friend”,密码为“friend”,第三个为“stranger”,密码为“strangers”。
代码如下:
nicholas = nicholas
friend = friend
         stranger = stranger
这样,我们就添加好了三个认证用户。

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
 
[users]
# harry = harryssecret
# sally = sallyssecret
nicholas = nicholas
friend = friend
stranger = stranger

 
       下面,我们来介绍authz这个文件,这个文件是控制权限的关键。
同样打开这个文件,你会看到一些注释掉的语句,
# [groups]
# [/foo/bar]
# [repository:/baz/fuz]
       下面,我们介绍一下用户组的概念。所谓用户组,顾名思义,就是一个成员组,一般情况下,在同一个成员组的人员享有同样的权力,比如读,写权。Subversion为我们提供了一个很好的用户组应用。
在之前,我们一共建立三个用户,nicholas,friend和stranger,我们现在设想一下我们的组情况,假设我们希望nicholas和friend在开发组中,这两个用户具有读和写的权力,而用户stranger在测试组中,只具备读的权力。那么我们该如何来控制这个权限呢?看看下面的代码:
我们先在[groups]标记下面,输入组的名称:
       dev_group = nicholas, friend
       test_group = stranger
到目前为止,我们已经为三个用户分好了用户组,其中nicholas和friend在dev_group中,而stranger则在test_group中。
下面,我们为两个组来分配权限。
首先我们要为这两个组所能访问的工程做一个规定,正如在之前的文章《Eclipse中使用Subversion进行版本控制》中,曾经向版本参考提交了一个名为“TestSVNProj”的项目,下面我就假设刚刚建立的两个用户组都需要最这个工程进行操作。
我们在authz文件中,写下[TestSVNProj],这个是指定我们下面将对TestSVNProj项目进行定义。
我们使用如下代码:
@dev_group = rw
@test_group = r
这就定义了,对TestSVNProj项目,dev_group用户组可以进行读,写操作,而test_group用户组则只具备读的权限。
为了阻止其他用户组对这个文件有读的权力,我们可以再添加一句:
* =
这个语句就是指定其他的用户组的权力为空,也就是没有权力。

### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to a
### single user, to a group of users defined in a special [groups]
### section, or to anyone using the '*' wildcard. Each definition can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').
 
[groups]
# harry_and_sally = harry,sally
 
dev_group = nicholas,friend
test_group = stranger
 
# [/foo/bar]
# harry = rw
# * =
 
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
 
[/TestSVNProj]
@dev_group = rw
@test_group = r
* =

 
最后,我们在来说说这个svnserve.conf文件,打开这个文件,我们就可以看出这个是Subversion权限配置的主文件,类似于读取相关信息的枢纽。
为了让我们刚刚配置的两个文件(passwd和authz)起作用,我们需要去掉password-db = passwd和authz-db = authz前面的注释符“#”,让Subversion知道要从上面两个文件中读取相关信息。
当然,你也可以指定其他的认证文件,写法如下:
        password-db = ..\..\passwd
authz-db = ..\..\authz
以此类推。
       在实战过程中,处于安全的考虑,我们往往要限制对匿名用户的访问权限,所以我们可以将anon-access = read前面的“#”去掉,并将read参数修改为none,表明禁止匿名用户对版本控制库的访问。

### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository. (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)
 
### Visit http://subversion.tigris.org/ for more information.
 
[general]
### These options control access to the repository for unauthenticated
### and authenticated users. Valid values are "write", "read",
### and "none". The sample settings below are the defaults.
anon-access = none
# auth-access = write
### 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 conf directory.
### 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 conf
### directory. 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
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa. The default realm
### is repository's uuid.
# realm = My First Repository

 
       至此,你可以控制你的项目,对其进行访问权限的控制了。
 
 
下面是我写的所有关于Subversion的文章,希望对大家有用,文章是按照内容的先后难度顺序排列,方便大家参考。
 
分享到:
评论
1 楼 kris_xu 2007-09-07  
正需要这个。及时雨

相关推荐

    Subversion管理员手册

    《Subversion管理员手册》 本手册旨在为系统管理员提供有关Subversion配置管理工具的详细指导。Subversion(简称SVN)是一种广泛应用于源代码版本控制的工具,版本号为1.4.3,专为Linux操作系统设计。在日常工作中...

    svn-精细权限控制手册

    【Subversion 权限控制详解】 Subversion(简称 SVN)是一个强大的版本控制系统,广泛用于团队协作中的源代码管理和文档版本管理。在多人协作的环境中,权限控制至关重要,以确保每个团队成员只能访问他们被允许...

    Subversion Edge详细安装与使用手册

    ### Subversion Edge 详细安装与使用手册 #### 一、Subversion Edge 下载与安装 ##### 1.1 下载地址 Subversion Edge 的下载地址为:[http://www.collab.net/svnedge](http://www.collab.net/svnedge)。 ##### ...

    Subversion中文手册.rar

    除了基本操作,手册可能还会涉及更高级的主题,如钩子脚本(Hooks)的设置,这些脚本可以在特定事件(如提交)发生时自动执行,用于实现权限控制、自动化测试或其他定制化需求。另外,还可能涵盖Subversion与其他...

    subversion 安装包与安装手册

    Subversion 是一个开源的版本控制系统,它用于管理文件和目录的变更历史,使得多人协作开发成为可能。在本文中,我们将深入探讨Subversion的安装过程,特别是在RHEL 6x和7x系统上的操作。 首先,理解Subversion的...

    Subversion 中文手册

    Subversion(通常缩写为svn)是一款开源的版本控制系统,用于管理软件开发过程中代码和其他文件的变更历史。Subversion 中文手册是专为初学者设计的...总之,Subversion 中文手册是学习和掌握版本控制技术的宝贵资源。

    svn权限控制手册[借鉴].pdf

    `authz` 文件是Subversion权限控制的核心,它允许你定义谁可以访问哪些资源以及他们可以执行的操作。文件结构主要包括 `[groups]`、路径段落(如 `[repository:/path]`)和权限规则。通过创建用户组,可以方便地批量...

    Subversion中文手册.zip

    1. **安装与配置**:如何在不同操作系统上安装Subversion服务器和客户端,以及如何配置仓库和用户权限。 2. **命令行工具**:详细介绍svn命令行工具的使用,包括各命令的语法和示例。 3. **版本控制基础**:解释版本...

    subversion1.6 手册

    在阅读Subversion 1.6中文手册时,你会了解到如何安装和配置Subversion服务器,创建和管理版本库,设置用户权限,以及如何使用基本的命令行工具进行检出、提交、更新、合并等操作。手册还将详细解释如何处理冲突,...

    Apache+ subversion+tortoiseSVN安装手册

    Apache、Subversion 和 TortoiseSVN 是用于版本控制系统的重要组件,尤其在软件开发团队中广泛使用,便于协作和代码管理。...Subversion 安装手册中的文档会提供更详细的指导,包括错误排查和高级配置。

    subversion edge 安装配置使用手册

    具体配置步骤包括在TeamForge中配置Subversion Edge作为版本控制系统,以及在Subversion Edge中设置TeamForge作为认证源,从而实现用户同步和权限管理。 总结,Subversion Edge是Subversion版本控制系统的强大伴侣...

    subversion配置手册

    Subversion(简称SVN)是一种集中式的版本控制系统,广泛应用于软件开发过程中对代码版本的管理。它通过记录每次对文件或目录所做的修改,帮助团队成员追踪项目的变更历史,从而更好地管理项目资源。 ### 二、安装...

    Subversion中文手册

    ### Subversion中文手册 #### 软件并行开发版本管理的SVN使用说明书 **SVN(Subversion)**是一种流行的版本控制系统,用于管理软件项目中的源代码变更历史。相较于其前辈CVS(Concurrent Versions System),SVN...

    SVN (Subversion)的中文手册

    SVN(Subversion)是一种广泛使用的版本控制系统,用于管理和跟踪文件和目录的变更历史。它允许多个人协作编辑同一份代码或文档,并确保在多人同时修改时不会丢失任何更改。以下是对SVN及其使用方法的详细说明,适用...

    linux下subversion+https安装手册

    在Linux环境下,Subversion(简称SVN)是一个强大的版本控制系统,常用于管理软件开发过程中的源代码和其他文件。本文档将详细介绍如何在Linux系统中安装、配置Subversion,并结合HTTPD服务实现HTTPS方式访问SVN仓库...

    Subversion 服务器端安装及配置手册

    Subversion (SVN) 是一种广泛使用的版本控制系统,它可以帮助团队管理源代码或其他文档的变化历史。Subversion 支持两种主要的服务模式:自定义协议的 `svnserve` 服务以及作为 Apache Web 服务器的一个模块。这两种...

    svn手册.pdf Subversion使用

    《svn手册.pdf》是关于Subversion使用的一份详尽指南,Subversion是一个开源的版本控制系统,用于管理和跟踪文件和目录的变更。以下是Subversion的一些核心概念、操作和用途的详细说明: 1. 版本控制:Subversion的...

Global site tag (gtag.js) - Google Analytics