SVN权限控制解析

合集下载

svn 正则匹配路径分配权限

svn 正则匹配路径分配权限

svn 正则匹配路径分配权限版本控制系统(Version Control System,简称 VCS)是软件开发过程中必不可少的一部分,其中,Subversion(svn)是一个常用的版本控制系统。

在使用svn 进行代码管理时,我们经常需要对不同路径的文件或目录设置不同的权限。

我们可以通过正则表达式来匹配路径,并将相应的权限分配给这些路径。

首先,我们需要在svn 的配置文件中设置路径匹配规则。

通过编辑svnserve.conf(对于svnserve 服务器)或者authz 文件(对于Apache HTTP Server)来实现。

下面是一些示例路径匹配规则的正则表达式:1. 路径匹配所有 .txt 文件,在根目录及其子目录下```[/](.*\/)*[^\/]*\.txt$```2. 路径匹配所有以 .doc 结尾的文件,在 trunk 目录及其子目录下```[^\/]+\/trunk\/(.*\/)*[^\/]*\.doc$```3. 路径匹配所有以 .css 结尾的文件,在 branches 目录及其子目录下```[^\/]+\/branches\/(.*\/)*[^\/]*\.css$```4. 路径匹配所有以/images 开头并以 .png 结尾的文件,在根目录及其子目录下```[/](.*\/)*images\/[^\/]*\.png$```以上是一些常见的路径匹配规则示例,你可以根据实际需求自定义正则表达式。

接下来,我们需要定义不同路径匹配规则对应的权限。

在authz 文件中,可以使用以下语法来为路径分配权限:```[路径规则]权限 = 用户名```例如,为路径 /trunk/test.txt 分配读写权限:```[/trunk/test.txt]rw = alice```这将让用户 alice 具有对 /trunk/test.txt 文件的读写权限。

使用正则表达式进行路径分配权限可以帮助我们更方便地管理代码库,确保不同用户或团队对应的路径有相应的权限。

svn的权限管理与设置

svn的权限管理与设置

Win7 系统搭建SVN 服务端和客户端图文使用方法1、安装好VisualSVN Server后,运行VisualSVN Server Manger,打开服务器的 VisualSVN 界面:2、创建仓库(repository)第一种方式:按照上图,创建新的代码库,在下图所示的文本框中输入代码名称:上图中选择“empty repostory”,则在代码库只创建空的代码库StartKit,选下面的“single-project”则在代码库StartKit下面会创建trunk、branches、tags三个子目录;3种仓库默认推荐权限设置(Nobody…不允许任何人访问All Subversion users…所有svn用户都可以Customize permissions自定义权限允许,这里下面有个按钮,我们可以过会继续设置,当然你也可以在这里设置,然后点create创建)这里有个Repository URL这个地址就是客户端获取服务器代码的地址,你可以先记下来,也可以通过右击仓库名可以获得。

前面的WIN-TV..什么的是你计算机的名字,客户端都是服务器的ip地址就行了这就是标准的branches,tags,trunk服务器版本我们现在右击整个仓库,就是MyBlog项目,我们现在来创建一个admin管理员,用户名admin,密码admin,你可以在Users查找到他,可直接修改密码点击“OK”创建完代码库后,没有任何内容在里面。

我会在这个教程的第二部分说明如何迁入源代码。

下面,我们开始安全性设置,在左侧的Users上点击右键:输入上面的信息,点击OK,我们就创建一个用户了。

按照上面的过程,分别添加用户Developer1、tester1、manager1,好了,我们开始添加这些用户到我们刚才创建的项目里:点击上图中的"Add..."按钮,在下图中选择我们刚才添加的用户,点击OK按钮:说明:大家可能注意到了下图中的Groups,是的,你也可以先创建组,把用户添加到各个组中,然后对组进行授权,操作比较简单,在此略过。

svn的权限管理与设置

svn的权限管理与设置

Win7 系统搭建S‎VN 服务端和客户端图文‎使用方法1、安装好Vi‎sualS‎V N Serve‎r后,运行Vis‎ualSV‎N Serve‎r Mange‎r,打开服务器‎的Visua‎l SVN 界‎面:2、创建仓库(repos‎i tory‎)第一种方式‎:按照上图,创建新的代‎码库,在下图所示‎的文本框中‎输入代码名‎称:上图中选择‎“e mpty‎repos‎t ory”,则在代码库‎只创建空的‎代码库St‎a rtKi‎t,选下面的“singl ‎e-proje‎c t”则在代码库‎S t art‎K it下面‎会创建tr‎u nk、branc‎h es、tags三‎个子目录;3种仓库默‎认推荐权限‎设置(Nobod‎y…不允许任何‎人访问All Subve‎r sion‎users‎…所有svn‎用户都可以‎Custo‎m ize permi‎s sion‎s自定义权‎限允许,这里下面有‎个按钮,我们可以过‎会继续设置‎,当然你也可‎以在这里设‎置,然后点cr‎e ate创‎建)这里有个R‎e posi‎t ory URL这个‎地址就是客‎户端获取服‎务器代码的‎地址,你可以先记‎下来,也可以通过‎右击仓库名‎可以获得。

前面的WI‎N-TV..什么的是你‎计算机的名‎字,客户端都是‎服务器的i‎p地址就行‎了这就是标准‎的b ran‎c hes,tags,trunk‎服务器版本‎我们现在右‎击整个仓库‎,就是MyB‎l og项目‎,我们现在来‎创建一个a‎d min管‎理员,用户名ad‎m in,密码adm‎i n,你可以在U‎s ers查‎找到他,可直接修改‎密码点击“OK”创建完代码‎库后,没有任何内‎容在里面。

我会在这个‎教程的第二‎部分说明如‎何迁入源代‎码。

下面,我们开始安‎全性设置,在左侧的U‎s ers上‎点击右键:输入上面的‎信息,点击OK,我们就创建‎一个用户了‎。

SVN安装配置, 权限, 目录访问

SVN安装配置, 权限, 目录访问

关键词:s version, 安装配置, 权限, 目录访问1 前言2 基本概念2.1 什么是版本控制2.2 什么是 S version2.3 版本库(repository)3 安装配置3.1 安装独立服务器 SVNServer3.2 安装 ApacheSVN 服务器4 FAQ5 参考资料1、前言花了72小时,终于把 S version 初步掌握了。

从一个连―什么是版本控制‖都不知道的门外汉,到配置出精确至每目录访问的入门者,中间还卡了一天时间。

其中费了许多气力,摸索实验了多次,还差点放弃了,但是收获是巨大的。

现把我的配置和学习过程写下来,供大家参考,也让初学者少走弯路。

以下仅以 Windows 平台为例讲解,Unix/Linux 平台请参考相关资料。

如其中有谬误的地方,包括错别字,请联系我修订。

技术在分享中进步!2、基本概念2.1、什么是版本控制简单点来说,版本控制就是数据仓库,它可以记录你对文件的每次更改。

这样,就算你在昏天黑地的改了几个月后老板说不要了,还是按照过去那样,你也不会抓狂,简单的恢复版本操作就搞定一切。

2.2、什么是 S versionS version是一个自由/开源版本控制系统,它管理文件和目录可以超越时间。

一组文件存放在中心版本库,这个版本库很像一个普通的文件服务器,只是它可以记录每一次文件和目录的修改,这便使你可以取得数据以前的版本,从而可以检查所作的更改。

从这个方面看,许多人把版本控制系统当作一种―时间机器‖。

S version可以通过网络访问它的版本库,从而使用户可以在不同的电脑上使用。

一定程度上可以说,允许用户在各自的地方修改同一份数据是促进协作。

进展可能非常的迅速,并没有一个所有的改变都会取得效果的通道,由于所有的工作都有历史版本,你不必担心由于失去某个通道而影响质量,如果存在不正确的改变,只要取消改变。

一些版本控制系统也是软件配置管理(SCM)系统,这种系统经过特定的精巧设计来管理源代码,有许多关于软件开发的特性—本身理解编程语言、或者提供构建程序的工具。

Visual SVN权限配置

Visual SVN权限配置

Visual SVN的权限配置是在SVN_ROOT根目录下面的三个文件内1)authz:Visual SVN账户权限配置;2)authz-windows:如果使用Windows域账户,权限配置在此文件配置;3)htpasswd:账户名及密码;注:SVN正常是在每个版本库内都有单独的权限配置文件,如project、office、public等目录内都会有单独的权限配置文件,而VisualSVN将所有版本库的权限配置集中到了根目录下面。

相对配置更加简单。

我们目前使用以下两种方式进行权限的设置:1、Visual SVN图形化控制界面在该界面可以实现如下功能:1)新建用户user;2)新建组Group并添加用户user;3)配置用户user或组group对产品库如Project、Office、Public的访问权限;2、手动修改authz文件进行权限配置,但是需要注意以下几点:1)authz文件为“UTF-8 无BOM”格式,在使用记事本打开修改保存之后需要注意避免修改格式。

建议使用UltraEdit进行修改并且保存为“UTF-8 无BOM”格式。

2)authz文件目前测试发现将其中Windows2008中Copy到XP系统内本身就会发生变化,如38k大小的文件会变成48k,在将xp内的authz不做任何修改copy会SVN_ROOT 中时,VisualSVN打开时依然会提示“……\authz:1: Section header expected”错误。

由此可见在Copy到XP时文件已经发生了修改。

具体原因不详,目前直接在windows2008 server当中进行修订并保存为“UTF-8无BOM”格式,验证OK。

验证Copy到windows7 64bits中没有文件大小无变化。

王新2014年5月4日。

SVN权限详解

SVN权限详解
2.默认权限
如果说我对某个目录不设置任何权限,会怎样?马上动手做个试验,将:
[diary:
/]
@g_chief_manager = rw
改成:
[diary:
/]
# @g_chief_manager = rw
这样就相当于什么都没有设置。在我的svn
1.3.2版本上,此时是禁止任何访问。也就是说,如果你想要让某人访问某目录,你一定要显式指明这一点。这个策略,看起来与防火墙的策略是一致的。
1.3.2版本,就方便了那些想在一个代码库存放多个相互独立的项目的管理员,来分配权限了。比如说央舜公司建立一个大的代码库用于存放所有员工日志,叫做diary,而arm事业部只是其中一个部门,则可以这样做:
[diary:
/]
@g_chief_manager = rw
[diary:
/arm]
@g_arm_manager = rw
@g_vip = r
* =
[arm:
/diary/shanghai]
@g_manager = rw
@g_shanghai = rw
@g_vip = r
* =
[arm:
/ref]
@g_manager = rw
@g_docs = rw
* = r
[arm:
/temp]
* = rw
6测试
在服务器上,打开一个DOS Prompt窗口,输入如下指令:
g_docs = linda
注意到没有,linda这个帐号同时存在“总部”和“文档员”两个分组里面,这可不是我老眼昏花写错了,是因为svnserve.exe允许我这样设置。它意味着,这个家伙所拥有的权限,将会比他的同事rory要多一些,这样的确很方便。具体多了哪些呢?请往下看!

svn的权限管理与设置

svn的权限管理与设置

Win7 系统搭建SVN 服务端和客户端图文使用方法1、安装好VisualSVN Server后,运行VisualSVN Server Manger,打开服务器的 VisualSVN 界面:2、创建仓库(repository)第一种方式:按照上图,创建新的代码库,在下图所示的文本框中输入代码名称:上图中选择“empty repostory”,则在代码库只创建空的代码库StartKit,选下面的“single-project”则在代码库StartKit下面会创建trunk、branches、tags三个子目录;3种仓库默认推荐权限设置(Nobody…不允许任何人访问All Subversion users…所有svn用户都可以Customize permissions自定义权限允许,这里下面有个按钮,我们可以过会继续设置,当然你也可以在这里设置,然后点create创建)这里有个Repository URL这个地址就是客户端获取服务器代码的地址,你可以先记下来,也可以通过右击仓库名可以获得。

前面的WIN-TV..什么的是你计算机的名字,客户端都是服务器的ip地址就行了这就是标准的branches,tags,trunk服务器版本我们现在右击整个仓库,就是MyBlog项目,我们现在来创建一个admin管理员,用户名admin,密码admin,你可以在Users查找到他,可直接修改密码点击“OK”创建完代码库后,没有任何内容在里面。

我会在这个教程的第二部分说明如何迁入源代码。

下面,我们开始安全性设置,在左侧的Users上点击右键:输入上面的信息,点击OK,我们就创建一个用户了。

按照上面的过程,分别添加用户Developer1、tester1、manager1,好了,我们开始添加这些用户到我们刚才创建的项目里:点击上图中的"Add..."按钮,在下图中选择我们刚才添加的用户,点击OK按钮:说明:大家可能注意到了下图中的Groups,是的,你也可以先创建组,把用户添加到各个组中,然后对组进行授权,操作比较简单,在此略过。

SVN在Windows下的权限分配

SVN在Windows下的权限分配

SVN在Windows下的权限分配修订记录日期修订版本修改章节修改描述作者2008-10-20 1.0 匿名权限分配睢攸岚2008-11-9 2.0 用户权限分配郝阔君、乔良一、 使用说明本文档的目的是指导SVN(Subversion)初学者,可以通过使用SVN来进行版本控制和人员权限分配。

阅读完本文档你将有如下收获:¾熟悉SVN服务器端的权限分配;¾熟悉SVN客户端的版本回溯;二、 阅读前的准备本示例使用的SVN服务器版本号为[Subversion-1.4.5],使用的的客户端版本号为[TortoiseSVN 1.4.7],本示例不指导服务器端和客户端的安装,如果您想了解权限分配部分请确保您至少安装了SVN服务器端,如果您想了解版本回溯部分请确保您至少安装了SVN客户端。

下面开始正式介绍。

三、 创建SVN仓库创建一个空文件夹,取名svnroot(仓库名,自己任意取),右键文件夹选择[Create repository here…],如下图所示:单击确定后会出现如下图选择创建数据库类型对话框,选择默认的[FSFS]本地文件系统即可,单击确定提示您创建成功:下面创建一个启动服务的批处理文件,文件内容如下图所示,双击运行该批处理文件后,相应的仓库即启动服务:至此,您已经成功创建了本地SVN仓库,只要启动服务,别人就可以通过您的仓库进行相关操作。

四、 SVN的版本回溯功能首先你需要在客户端创建一个连接仓库的本地文件夹,利用Checkout下载服务器上你有权限操作的内容,然后如下图所示操作:在下图所示地方填入您要回滚得版本号,单击OK即可:五、 匿名用户权限分配首先进入你的仓库目录下面的[../conf]文件夹下面,你会看到如图所示三个文件,其中的[svnserve.conf]存储普通的配置信息,[passwd]存储所有的授权用户的用户名和密码信息,[author]存储用户权限信息。

VisualSvn权限控制

VisualSvn权限控制
而VisualSvn则是通过图形化的方法来配置这2个文件,即如果 想批量化地管理一个较复杂的权限分配,而不想在图形界面 上一个个的设置过来,可先设计好父节点和子节点的相关关 系,然后通过程序来实现。
对authz文件编辑时须注意问题:
1. 已经删除的组不能被分配权限,不然会导致文件解析出 错。
2. svn对于非英文文件名和目录名使用utf-8格式编码处理, 要对中文目录进行正确控制,应该使用无BOM的utf-8格 式,如果在编辑中格式出现错误,svn无法解析。
组管理
点击Add按钮,可以在该组中添加成员,在 添加成员时,不仅能加入用户,同时也能加 入其他组。
权限分配操作
左侧选择要分配权限的项目,右键出菜单,选择Manage Security选项,可以在权限分配窗口中对用户进行权限分配。 点击Add按钮可以添加用户或组。然后在下方选择对于的 权限
权限分配的粒度
VisualSvn权限控制
VisualSvn是简便化的svn服务器端,能通过图 形化的方式方便地配置用户、用户组、以及对 文件的权限控制。
用户管理
在左侧的Users上点击右键:
这样就新建了一个新用户。
组管理
为了方便对于用户权限的设置,可以将具有 相同性质的用户统一分配入一组中,这样在 对权限进行分配时只需对组进行操作,而不 用一个个地对用户操作。 通过如下操作可以新建、编辑组成员:
VisualSvn中权限分配的粒度跨度包括了svn服务器中所管理的 所有项,但是同时权限又是继承的即子节点的权限是基础于 父节点,svn节点类型:
1. 总库:
在总库下可以添加各个库,如现用的
mu2bc就是总库下的一个库。
2. 库: 在库下可以管理文件夹和文件。

svn配置详解(图例)

svn配置详解(图例)

Svn 一.S vn应用场景Svn是一个版本控制器,负责协同工作。

二.svn原理图解二.S vn安装1.版本Svn版本:Setup-Subversion-1.6.5.msi 2.检查svn是否安装成功命令:svn –version,svnadmin –version Java:java –version如果说没有反应检查环境变量是否配置●创建仓库命令:svnadmin create F:\repository\svn\oa创建成功后目录结构:●使用命令启动服务单仓库启动检查单仓库是否启动成功命令:netstat –an :检查3690端口是否被占用,如果说这个端口被占用,表示启动成功。

启动多仓库命令构造:svnserve-d:表示程序在后台运行-r:表示根目录检出代码出现错误:服务没有启动检查代码成功:提交commit: 出现错误:原因是svn需要指定版本信息,这个信息是帮助别人理解你提交的代码。

提交成功:但是理论上一般建议写双引号。

更新:update命令:svn update 文件名注册Windows服务sc create SVN-Service binpath= "D:\Program Files\Subversion\bin\svnserve.exe --service -r D:\repository\svn" displayname= "SVN-Service" start= auto depend= Tcpip三.图形化界面1.安装TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi第一次环境变量自动配置,如果安装过再次安装,需要删除以前配置的环境变量2.使用图形化界面来创建仓库3.检出这是svn权限问题:需要配置一下权限Svn权限配置问题:配置用户名密码:配置权限:配置单仓库:配置多仓库:。

svn安装及权限配置

svn安装及权限配置

svn安装及权限配置SVN安装及权限配置安装(svn://…访问方式的安装部署)1.安装svn-1.4.5-setup.exe2.将SVNService.exe拷贝到\Subversion\bin下,双击安装。

启动服务。

部署1.创建SVN仓库现在svn的目的位置上,创建相应文件夹,例如:E:/svnroot,然后开始→运行→cmd→输入命令:svnservice -install -d -r E:/svnroot2.启动svnservice服务3.创建项目仓库在svn仓库下创建项目的相应文件夹,例如:E:/svnroot/project1,然后开始→运行→cmd→输入命令:svnadmin create E:/svnroot/project1。

这时,在E:/svnroot/project1会出现conf、dav 等文件夹和文件。

4.有多个项目时,重复步骤3。

权限配置1.修改每个项目中的conf文件夹下的svnserve.conf文件:anon-access = noneauth-access = writepassword-db = ../../passwdauthz-db = ../../authz添加以上项目。

其中,../../passwd表示,向上两级文件夹下的passwd文件。

这样做的目的是,将所有项目的权限放在一个文件中控制。

2.设置加密和权限文件位置将其中一个文件夹下的passwd文件和authz文件拷贝到svnroot下,与每个项目的文件夹平行。

3.设置svn密码,修改passwd文件在【users】下添加用户名及密码,格式如下:用户名= 密码,例如:harry = harrysecret每个用户单独占一行,密码后不用添加任何分隔符号。

4.设置svn权限,修改authz文件:设置【groups】:按照一种规则,将所有人员分组,例如可以按照对每个项目、每个项目的不同权限进行分组,人员之间用逗号分隔,每个组单独占一行,结尾不需要任何分隔符号。

SVN权限控制

SVN权限控制

SVN权限控制版本控制是软件开发过程中一个非常重要的环节,而SVN (Subversion)作为一个集中式版本控制系统,可以帮助团队协同开发、管理代码仓库等。

在SVN中,权限控制是一项重要的功能,它可以有效地保护代码的安全性和保密性。

本文将详细介绍SVN权限控制的原理和使用方法。

一、SVN权限控制原理SVN权限控制是基于访问控制的原理实现的。

在SVN中,每个用户都被分配了一个唯一的用户名,而每个仓库也有一个唯一的URL。

通过在服务器端设置用户和仓库之间的权限关系,可以控制用户对仓库中文件和目录的访问权限。

二、SVN权限控制的对象1. 仓库:SVN权限控制的最基本单位,一个仓库可以包含多个项目。

在仓库的管理界面中,可以设置用户对仓库的访问权限,如读取权限、写入权限等。

2. 目录:SVN中的目录是代码库的组织单位,可以包含文件和子目录。

通过设置目录的权限,可以控制用户对目录中内容的访问权限。

三、SVN权限控制的方式1. 基于用户:SVN允许为每个用户单独设置权限。

通过在仓库管理界面添加用户并分配相应的读写权限,可以实现对用户的精细控制。

2. 基于组:SVN还支持将用户分组,然后针对组进行权限设置。

这样可以简化权限管理,当有多个用户需要相同的权限时,只需要将这些用户添加到同一个组即可。

3. 基于路径:除了可以控制用户或组的权限外,SVN还支持对特定路径设置不同的权限。

这样可以根据实际需求,对不同的目录或文件进行灵活的权限控制。

四、SVN权限控制的步骤1. 创建用户或组:首先需要在SVN服务器上创建用户或组。

可以通过相关命令或者使用可视化界面工具进行操作。

2. 分配权限:在仓库管理界面上,将用户或组与仓库进行关联,并设置相应的权限。

可以根据实际需求设置读写权限、删除权限、修改权限等。

3. 客户端验证:在客户端使用SVN时,需要输入正确的用户名和密码来验证身份。

只有通过身份验证,才能对仓库进行相应的操作。

SVN管理规范

SVN管理规范

SVN管理规范引言概述SVN(Subversion)是一种版本控制系统,用于管理软件开发过程中的代码版本。

在团队协作开发中,SVN的管理规范对于保证代码的稳定性和可追溯性非常重要。

本文将介绍SVN管理规范的具体内容和实施方法。

一、代码库管理1.1 确定代码库的结构:根据项目的特点和需求,确定代码库的结构,包括项目目录结构、分支和标签的管理方式等。

1.2 设定权限控制:根据团队成员的角色和职责,设定不同的权限控制,确保只有具有相应权限的人员才能进行代码的提交和修改。

1.3 定期清理无用代码:定期清理代码库中的无用代码和过期分支,保持代码库的整洁和高效。

二、分支管理2.1 制定分支策略:确定分支的创建和合并策略,包括主干分支、开发分支、发布分支等,确保代码的流程清晰和合并无冲突。

2.2 命名规范:统一分支的命名规范,包括分支类型、功能、版本号等信息,方便团队成员理解和管理。

2.3 定期合并分支:定期合并开发分支和主干分支,确保代码的同步和一致性。

三、提交规范3.1 提交信息规范:每次提交代码时,必须填写清晰明了的提交信息,包括修改内容、原因和影响等信息。

3.2 避免大规模提交:避免一次性提交大量代码,应该分批次提交,便于代码审查和追溯。

3.3 定期更新代码:团队成员应该定期更新代码,确保本地代码和代码库的同步。

四、冲突解决4.1 及时解决冲突:当出现代码冲突时,应该及时解决,避免影响其他团队成员的工作。

4.2 沟通协调:在解决代码冲突时,应该及时与相关团队成员沟通协调,确保解决方案的有效性。

4.3 记录冲突处理过程:在解决代码冲突的过程中,应该详细记录解决方案和原因,以便日后参考和总结经验。

五、安全备份5.1 定期备份代码库:定期对代码库进行备份,确保代码的安全性和可恢复性。

5.2 多地备份:将代码库备份到不同地点,避免因灾害等意外事件导致代码丢失。

5.3 定期测试备份:定期测试代码库的备份数据,确保备份的完整性和可用性。

SVN权限配置详解

SVN权限配置详解

SVN权限配置详解SVN权限详细配置本章将详细介绍SVN权限配置涉及的两个配置⽂件, svnserve.conf 和 authz.conf,通过对配置逐⾏的描述,来阐明其中的⼀些细节含义。

除此之外的其他配置、安装等内容,不是本⽂重点,读者若有什么疑问,请参考后⾯“参考⽂献”中列出的⼀些⽂档。

这⾥⾸先要注意⼀点,任何配置⽂件的有效配置⾏,都 **不允许存在前置空格** ,否则程序可能会出错,给你⼀个 ``Option expected``的提⽰。

也就是说,如果你直接从本⽂的纯⽂本格式中拷贝了相关的配置⾏过去,需要⼿动将前置的4个空格全部删除。

当然了,如果你觉得⼀下⼦要删除好多⾏的同样数⽬的前置空格是⼀件苦差使,那么也许 UltraEdit 的“Column Mode”编辑模式,可以给你很⼤帮助。

1、svnserve.conf``SVN\conf\svnserve.conf`` ⽂件,是 svnserve.exe 这个服务器进程的配置⽂件,我们逐⾏解释如下。

⾸先,我们告诉 svnserve.exe,⽤户名与密码放在passwd.conf ⽂件下。

当然,你可以改成任意的有效⽂件名,⽐如默认的就是 passwd::password-db = passwd.conf接下来这两⾏的意思,是说只允许经过验证的⽤户,⽅可访问代码库。

那么哪些是“经过验证的”⽤户呢?噢,当然,就是前⾯说那些在passwd.conf ⽂件⾥⾯持有⽤户名密码的家伙。

这两⾏的等号后⾯,⽬前只允许read write none 三种值,你如果想实现⼀些特殊的值,⽐如说“read-once”之类的,建议你⾃⼰动⼿改源代码,反正它也是⾃由软件::anon-access = noneauth-access = write接下来就是最关键的⼀句呢,它告诉 svnserve.exe,项⽬⽬录访问权限的相关配置是放在 authz.conf ⽂件⾥::authz-db = authz.conf当然,svn 1.3.2 引⼊本功能的时候,系统默认使⽤ authz ⽽不是 authz.conf 作为配置⽂件。

SVN使用说明详解

SVN使用说明详解

输入用户名和密码即可进入所在的版本库。登录帐号由配置管理员分配,客户 端不能修改密码,建议选择“Save authentication”,这样下次不用输入帐号便 会自动登录,且在版本库里面的每一个操作也不用输入帐号来进行验证。登录后的 界面如下:
此目录的当前版 本 项目目 录 对此目录作最近操作的人员 名称 在此目录做最近一次修改的时 间
Add(加入)如果有多个文件及文件夹要提交到服务器,我们可以先把这些要提交的文 件加入到提交列表中,要执行提交操作,一次性把所有文件提交,如图,可以选 择要提交的文件,然后点击执行提交(SVN Commit),即可把所有文件一次性提 交到服务器上 。 Delete(删除) SVN支持文件删除,而且操作简单,方便,选择要删除的文件,点击Delete, 再把删除操作提交到服务器 。
二、登录SVN版本库的方法
首先在本机安装SVN客户端,客户端软件上的TortoiseSVN 可以从已发 至各个部门经理手上,客户端软件里面还放了一个汉化包。具安装方法详见《 配置管理工具应用指南》。安装完成之后,点击鼠标右键,会出现下图
点击Repo—browser 版本库浏览:这是个版本库的浏览工具, 点击它之后,会出现下面的小对话框:
SVN配置管理培训
何燕
2012年02月
SVN简介
SVN登录方法
工作周期
服务端其他相关操作
SVN使用约束 SVN使用中遇到的问题及解决措施
一、SVN的简单介绍
配置管理工具Subversion,简称为SVN,是一个开源的版本控制系统, 可以实现文件及目录的保存及版本回溯。SVN将文件存放在中心版本库 里,它可以记录文件和目录每一次的修改情况,这样我们就可以籍此将 数据恢复到以前的某个版本,并可以查看更改的细节。也就是说,一旦 一个文件被传到SVN上面,那么不管对它进行什么操作,SVN都会有清 晰的记录,即使它在N天前被删除了,也可以被找回来。 SVN是一种集中的分享信息的系统,它的核心是版本库,储存所有的 数据,版本库按照文件树形式储存数据-包括文件和目录,任意数量的 客户端可以连接到版本库,读写这些文件。通过写数据,别人可以看到 这些信息;通过读数据,可以看到别人的修改。

SVN权限配置

SVN权限配置
去掉:passwork-db=passwd 和 authz-db = zuthz 的注释,保存文件
之后配置 authz 和passwd 文件
1.在passwd里面添加一个wentao的用户
[root@wentao13 conf]# vim passwd
[users] # harry = harryssecret # sally = sallyssecret wentao = 123456
[:/] 的/表示根目录
然后权限就分配完了,
我们用客户端工具验证下(服务器防火墙记得关哦 systemctl stop fi密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户, 立即注册
SVN权 限 配 置
修改配置文件
[root@wentao13 conf]# pwd /root/svnRepo//conf [root@wentao13 conf]# ll total 12 -rw-r--r--. 1 root root 1080 Mar 29 08:59 authz -rw-r--r--. 1 root root 309 Mar 29 08:59 passwd -rw-r--r--. 1 root root 3110 Mar 29 09:27 svnserve.conf [root@wentao13 conf]# vim svnserve.conf
[groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe
# [/foo/bar] # harry = rw # &joe = r #*=
# [repository:/baz/fuz] # @harry_and_sally = rw #*=r [:/] wentao = rw

VisualSVN Server授权机制

VisualSVN Server授权机制

了解VisualSVN Server的授权机制Understanding VisualSVN Server authorizationVisualSVN Server提供一种访问授权机制,可以让你控制用户可以访问的配置库中的特定文件。

从用户角度看,VisualSVN Server的访问授权机制与Windows文件系统非常相像。

但是有一些明显的差别,没有经验的Subversion新用户饱受困扰。

本文讨论VisualSVN Server基本访问控制(Access Control)原则,也讨论了与Windows 访问控制的主要差别。

访问规则Access rulesVisualSVN Server使用基于路径的授权机制(path-based authorization)。

该机制实际上是VisualSVN Server内部包含的Subversion所提供。

采用下述简单格式,就可以配置访问权限:<用户名user name/组名group name> = <访问等级access level>.可以在访问规则(accessrules)中,明确配置以下访问等级(access level):●不能访问No Access●只读Read Only●读写Read/Write如果在父路径中定义一个access rule,且在当前目录中没有明确重载overloading,那么这个access rule将显示为“继承的”(inherited)。

如左图所示。

配置库的每个路径可以配置多个访问规则。

对于一个给定的路径,若没有定义任何访问规则access rule(直接或通过继承),则所有用户都禁止访问。

在下列情况下,access rule适用于某个用户:●access rule针对这个指定的用户;●access rule针对一个用户组,这个组直接或间接包括了这个用户。

访问控制的原则确定一个用户的访问等级access level有两条基本原则:继承原则inheritance principle 和优先原则priority principle。

svn权限管理包括三个文件

svn权限管理包括三个文件

svnse‎r ve.c‎o nf的类‎容###‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎####‎This‎file‎cont‎r ols ‎t he c‎o nfig‎u rati‎o n of‎the ‎s vnse‎r ve d‎a emon‎, if ‎y ou#‎## us‎e it ‎t o al‎l ow a‎c cess‎to t‎h is r‎e posi‎t ory.‎ (If‎you ‎o nly ‎a llow‎### ‎a cces‎s thr‎o ugh ‎h ttp:‎and/‎o r fi‎l e: U‎R Ls, ‎t hen ‎t his ‎f ile ‎i s##‎# irr‎e leva‎n t.)‎### ‎V isit‎http‎://su‎b vers‎i on.a‎p ache‎.org/‎for ‎m ore ‎i nfor‎m atio‎n.[‎g ener‎a l]#‎## Th‎e ano‎n-acc‎e ss a‎n d au‎t h-ac‎c ess ‎o ptio‎n s co‎n trol‎acce‎s s to‎the‎### r‎e posi‎t ory ‎f or u‎n auth‎e ntic‎a ted ‎(a.k.‎a. an‎o nymo‎u s) u‎s ers ‎a nd#‎## au‎t hent‎i cate‎d use‎r s, r‎e spec‎t ivel‎y.##‎# Val‎i d va‎l ues ‎a re "‎w rite‎", "r‎e ad",‎and ‎"none‎".##‎# Set‎t ing ‎t he v‎a lue ‎t o "n‎o ne" ‎p rohi‎b its ‎b oth ‎r eadi‎n g an‎d wri‎t ing;‎### ‎"read‎" all‎o ws r‎e ad-o‎n ly a‎c cess‎, and‎"wri‎t e" a‎l lows‎comp‎l ete ‎### ‎r ead/‎w rite‎acce‎s s to‎the ‎r epos‎i tory‎.###‎The ‎s ampl‎e set‎t ings‎belo‎w are‎the ‎d efau‎l ts a‎n d sp‎e cify‎that‎anon‎y mous‎### ‎u sers‎have‎read‎-only‎acce‎s s to‎the ‎r epos‎i tory‎, whi‎l e au‎t hent‎i cate‎d###‎user‎s hav‎e rea‎d and‎writ‎e acc‎e ss t‎o the‎repo‎s itor‎y.#a‎n on-a‎c cess‎= re‎a d#a‎u th-a‎c cess‎= wr‎i te#‎## Th‎e pas‎s word‎-db o‎p tion‎cont‎r ols ‎t he l‎o cati‎o n of‎the ‎p assw‎o rd#‎## da‎t abas‎e fil‎e. U‎n less‎you ‎s peci‎f y a ‎p ath ‎s tart‎i ng w‎i th a‎/,#‎## th‎e fil‎e's l‎o cati‎o n is‎rela‎t ive ‎t o th‎e dir‎e ctor‎y con‎t aini‎n g##‎# thi‎s con‎f igur‎a tion‎file‎.###‎If S‎A SL i‎s ena‎b led ‎(see ‎b elow‎), th‎i s fi‎l e wi‎l l NO‎T be ‎u sed.‎### ‎U ncom‎m ent ‎t he l‎i ne b‎e low ‎t o us‎e the‎defa‎u lt p‎a sswo‎r d fi‎l e.p‎a sswo‎r d-db‎= pa‎s swd‎### T‎h e au‎t hz-d‎b opt‎i on c‎o ntro‎l s th‎e loc‎a tion‎of t‎h e au‎t hori‎z atio‎n###‎rule‎s for‎path‎-base‎d acc‎e ss c‎o ntro‎l. U‎n less‎you ‎s peci‎f y a ‎p ath‎### s‎t arti‎n g wi‎t h a ‎/, th‎e fil‎e's l‎o cati‎o n is‎rela‎t ive ‎t o th‎e the‎### ‎d irec‎t ory ‎c onta‎i ning‎this‎file‎. If‎you ‎d on't‎spec‎i fy a‎n###‎auth‎z-db,‎no p‎a th-b‎a sed ‎a cces‎s con‎t rol ‎i s do‎n e.#‎## Un‎c omme‎n t th‎e lin‎e bel‎o w to‎use ‎t he d‎e faul‎t aut‎h oriz‎a tion‎file‎.aut‎h z-db‎= au‎t hz#‎## Th‎i s op‎t ion ‎s peci‎f ies ‎t he a‎u then‎t icat‎i on r‎e alm ‎o f th‎e rep‎o sito‎r y.#‎## If‎two ‎r epos‎i tori‎e s ha‎v e th‎e sam‎e aut‎h enti‎c atio‎n rea‎l m, t‎h ey s‎h ould‎### ‎h ave ‎t he s‎a me p‎a sswo‎r d da‎t abas‎e, an‎d vic‎e ver‎s a. ‎T he d‎e faul‎t rea‎l m ##‎# is ‎r epos‎i tory‎'s uu‎i d.#‎r ealm‎= My‎Firs‎t Rep‎o sito‎r y##‎# The‎forc‎e-use‎r name‎-case‎opti‎o n ca‎u ses ‎s vnse‎r ve t‎o cas‎e-nor‎m aliz‎e###‎user‎n ames‎befo‎r e co‎m pari‎n g th‎e m ag‎a inst‎the ‎a utho‎r izat‎i on r‎u les ‎i n th‎e ###‎auth‎z-db ‎f ile ‎c onfi‎g ured‎abov‎e. V‎a lid ‎v alue‎s are‎"upp‎e r" (‎t o up‎p er-‎### c‎a se t‎h e us‎e rnam‎e s), ‎"lowe‎r" (t‎o low‎e rcas‎e the‎user‎n ames‎), an‎d###‎"non‎e" (t‎o com‎p are ‎u sern‎a mes ‎a s-is‎with‎o ut c‎a se c‎o nver‎s ion,‎whic‎h###‎is t‎h e de‎f ault‎beha‎v ior)‎.#fo‎r ce-u‎s erna‎m e-ca‎s e = ‎n one‎[sas‎l]##‎# Thi‎s opt‎i on s‎p ecif‎i es w‎h ethe‎r you‎want‎to u‎s e th‎e Cyr‎u s SA‎S L##‎# lib‎r ary ‎f or a‎u then‎t icat‎i on. ‎D efau‎l t is‎fals‎e.##‎# Thi‎s sec‎t ion ‎w ill ‎b e ig‎n ored‎if s‎v nser‎v e is‎not ‎b uilt‎with‎Cyru‎s###‎SASL‎supp‎o rt; ‎t o ch‎e ck, ‎r un '‎s vnse‎r ve -‎-vers‎i on' ‎a nd l‎o ok f‎o r a ‎l ine‎### r‎e adin‎g 'Cy‎r us S‎A SL a‎u then‎t icat‎i on i‎s ava‎i labl‎e.'#‎use-‎s asl ‎= tru‎e###‎Thes‎e opt‎i ons ‎s peci‎f y th‎e des‎i red ‎s tren‎g th o‎f the‎secu‎r ity ‎l ayer‎### ‎t hat ‎y ou w‎a nt S‎A SL t‎o pro‎v ide.‎0 me‎a ns n‎o enc‎r ypti‎o n, 1‎mean‎s###‎inte‎g rity‎-chec‎k ing ‎o nly,‎valu‎e s la‎r ger ‎t han ‎1 are‎corr‎e late‎d###‎to t‎h e ef‎f ecti‎v e ke‎y len‎g th f‎o r en‎c rypt‎i on (‎e.g. ‎128 m‎e ans ‎128-b‎i t##‎# enc‎r ypti‎o n). ‎T he v‎a lues‎belo‎w are‎the ‎d efau‎l ts.‎# min‎-encr‎y ptio‎n = 0‎# ma‎x-enc‎r ypti‎o n = ‎256#‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎# ####‎#####‎#####‎‎p assw‎d的类容‎####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎### ##‎####‎This‎file‎is a‎n exa‎m ple ‎p assw‎o rd f‎i le f‎o r sv‎n serv‎e.##‎# Its‎form‎a t is‎simi‎l ar t‎o tha‎t of ‎s vnse‎r ve.c‎o nf. ‎A s sh‎o wn i‎n the‎### ‎e xamp‎l e be‎l ow i‎t con‎t ains‎one ‎s ecti‎o n la‎b elle‎d [us‎e rs].‎### ‎T he n‎a me a‎n d pa‎s swor‎d for‎each‎user‎foll‎o w, o‎n e ac‎c ount‎per ‎l ine.‎[us‎e rs]‎# har‎r y = ‎h arry‎s secr‎e t# ‎s ally‎= sa‎l lyss‎e cret‎caiq‎u anhu‎i = c‎a iqua‎n hui‎l iziq‎i ng =‎lizi‎q ing‎y exia‎o feng‎= ye‎x iaof‎e ng#‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎#####‎# ####‎####‎‎。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SVN权限控制解析
作为一个配置管理员,需要管理用户的权限,本文主要介绍了如何使用Subversion的授权文件“authz-db”,同时为了叙述的清晰,我首先澄清一些概念。

1、认证(Authentication)和授权(Authorization)
这两个术语经常一起出现。

其中认证的意思就是鉴别用户的身份,最常见的方式就是使用用户名和密码,授权就是判断用户是否具备某种操作的权限,在Subversion里提供了“authz-db”文件,实现了以路径为基础的授权,也就是判断用户是否有操作对应路径的权限,在Subversion 1.3之后,svnserve和Apache一样都可以使用“authz-db”文件。

2、svnserve下的配置文件
因为本文是以svnserve为例的,所以先介绍一下版本库目录的结构:
其中conf下面有三个文件:
其中的“svnserve.conf”是这个版本库的配置文件,当使用svnserve时,
上面的配置说明:
1、匿名用户的权限为none(可以为none、read、write)
2、认证用户的权限为write(可以为none、read、write。

SVN的权限
认证方式是基于此处的设置和anthz授权文件中的设置,两者都满足
(&方式)才成立,即
read&read=read,read&write=read,write&write=write,所以
此处应把认证用户的权限设置为write,否则authz文件中关于写权
限的设置都会无效的
3、使用了“svnserve.conf”同目录的passwd和authz,其中的
password-db指定了用户密码文件,authz-db是我们的授权文件,
也就是我们本文主要介绍的文件。

4、realm为“My First Repository”,这个值作为客户端保存服务器端
信息(如用户和密码)的唯一识别符
注意:使用Apache作为服务器时,根本就不会参考“svnserve.conf”文件的内容,而是会参考Apache的配置。

3、基于svnserve的版本库文件布局
使用svnserve时,为了管理的方便,应该使用相同的认证和授权文件,所以应该让所有版本库的配置文件svnserve.conf指向同一个password-db和authz-db文件。

下面是一个多版本库的目录:
D:\SVNROOT下有两个目录project1和project2,都已经创建了版本库,所以我们修改每个conf目录下的svnserve.conf,使之指向同一个password-db和authz-db文件。

这样,D:\SVNROOT\passwd和D:\SVNROOT\authz就控制了所有版本库的svnserve访问。

另外在后面的操作中要关闭匿名访问,应该去掉“anon-access = none”前的“#”号,保证只有认证用户可以访问。

注意:还有一点需要注意,那就是svnserve的“realm”的值,在上面的设置下,应该保证所有的版本库使用相同的realm值,这样,对版本库的密码缓存可以在多个版本库之间共享,更多细节见《客户端凭证缓存》。

4、测试用户和组说明
版本库禁止任何匿名用户的访问,只对认证用户有效。

root:配置管理管理员,对版本库有完全的管理权限。

p1_admin1:project1的管理员,对project1有完全权限。

p1_d1:project1的开发者,对project1的trunk有完全的权限,但是对其中的/trunk/admin目录没有任何权限。

p1_t1:project1的测试者,对project1的trunk有完全的读权限,但是对其中的/trunk/admin目录没有任何权限。

p2_admin1:project2的管理员,对project2有完全权限。

p2_d1:project2的开发者,对project2的trunk有完全的权限,但是对其中的/trunk/admin目录没有任何权限。

p2_t1:project2的测试者,对project2的trunk有完全的读权限,但是对其中的/trunk/admin目录没有任何权限。

对应的组及组的用户:
p1_group_a:p1_admin1
p1_group_d:p1_d1
p1_group_t:p1_t1
p2_group_a:p2_admin1
p2_group_d:p2_d1
p2_group_t:p2_t1
5、修改D:\SVNROOT\passwd文件
前面已经说过了,用户和密码文件应该是在D:\SVNROOT\passwd,所以我们为每一位用户设置权限,文件内容如下:
[users]
# 标示用户信息开始
p1_admin1 = p1_admin1
p1_d1 = p1_d1
p1_t1 = p1_t1
p2_admin1 = p2_admin1
p2_d1 = p2_d1
p2_t1 = p2_t1
为了便于验证,所有密码和用户名一致,如果你使用的是其他认证方式,这一步可能不同,但是用户名应该都是一样的。

注意:SVNserver使用的是未加密的密码存储方式,如果使用Apache作为SVN服务器的话,需要使用apache自带的htpasswd或htdigest程序生成密码文件(密码加密)。

6、配置授权,修改D:\SVNROOT\authz
经过以上设置以后,你会发现一些有趣的事情。

当使用用户“p1_d1”,检出project1的trunk时,目录是空的,好像admin目录根本不存在一样,当使用p1_d1用户浏览版本库时,能够看到admin目录,但是其中的内容却无法看到。

关于中文目录,也是没有问题的,只是注意要把authz文件转化为UTF-8格式,在我的WINXP的UltraEdit里显示的文件格式为U8-DOS,具体的做法是用UltraEdit打开authz文件,然后选择“文件->转换->ASCII转UTF-8”,然后保存。

再复杂的情况也不过如此,在实际的工作中要首先规划好权限,只赋给用户最小的权限,保证以最小的配置实现最复杂的权限控制。

相关文档
最新文档