实现精细的目录访问权限控制 svn

合集下载

SVN实现精细的目录访问权限

SVN实现精细的目录访问权限
3.2.4 管理用户帐号 在服务器端,新建 arm\ conf\ passwd.conf 文件,如下:
[users] morson = ShowMeTheMoney michael = mysecretpassword scofield = hellolittilekiller lincon = asyouknows111 rory = 8809117 linda = IlikeWorldCup2006
3.2.6 导入代码 在客户机 F:\ temp 目录下,建立好前述“背景假设”一节中描述的目录结构,然后用命令 F:\ temp>svn import arm svn://192.168.0.1/arm --username michael --password mysecretpassword 导入整个目录结构。
感谢 提供的 Subversion 空间,让更多的人可以通过 svn 获得本文件。
感谢 google 公司提供的免费主页空间,让我可以放置完全定制的 HTML 文件。
3 实战本章先直接给出需求及其最终的结果,如果你觉得对配置有什么疑问,或者看不懂,请不要着 急,我会在后面的章节详细描述的。
在实际的工作当中,我们有时候会遇见需要控制项目目录的访问权限的情况,比如说对项目的一些关键 模块进行限制,仅允许少数授权人士才可以修改等。由 于项目的目录本身就是作为版本库的一个部分 被 Subversion 所收管,所以我们无法利用操作系统的帐户权限体系,来实现授权控制。因此,这个 问题就只有让 svn 自己来解决了。
本文是利用 reST 格式来编写的,如果你对它感兴趣,请访问 /rst.html 。如果想要看到更好的 html 格式,你可以通篇复制本文到 一个文本文件里,然后利用 docutils 的 rst2html.py 脚本编译它,当然,首先你必须安装 python。

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 管理规范

svn 管理规范SVN管理规范由于版本控制系统(Version Control System,VCS)在软件开发过程中的重要性越来越被重视,Subversion(简称SVN)作为一种流行的开源版本控制系统,被广泛应用于各个领域。

为了保持版本管理的高效性和可维护性,在项目团队中制定并遵守一套SVN管理规范显得尤为必要。

本文将就SVN的使用及管理规范进行论述,并提供一些建议。

一、SVN仓库结构SVN仓库结构的良好规划可以为项目的管理提供方便。

通常来说,一个典型的项目仓库结构应包含以下目录:1. trunk(主干):主要用于开发团队的日常开发工作,并通过集成测试后才能进入发布。

2. branches(分支):用于存放项目在特定时间点上的快照,例如发布前的修复版本、临时性的实验性开发等。

3. tags(标签):用于标识项目的里程碑。

每个tag对应一个特定的版本,在发布、交付、重要里程碑等时刻创建。

二、版本控制最佳实践1. 提交频率:为避免冲突和代码丢失,开发者应当经常提交代码到SVN仓库,建议每天提交一次,以减少潜在的问题。

2. 提交注释:每次提交代码时,务必提供有意义的提交注释,描述更改的内容和目的,以便后续追踪和理解代码历史。

3. 不要提交无用的文件:避免将无关文件(如临时文件、编译生成的文件、日志等)提交到SVN仓库中,以保持代码库的整洁。

4. 避免对他人代码进行直接修改:当需要修改他人提交的代码时,应采用合适的方式,如创建分支、使用补丁等,以避免对他人代码造成影响。

5. 遵循编码规范:保持团队统一的编码规范,提高代码的可读性和可维护性,并在提交代码前进行代码审查,确保代码质量。

三、代码分支管理1. 特性分支:当需要实现某个新功能或解决某个问题时,应基于主干创建特性分支进行开发,避免直接在主干上进行修改,以免影响其他开发工作。

2. 发布分支:在即将发布新版本前,应创建一个发布分支,用于进行发布前的测试和Bug修复。

svn功能

svn功能

svn功能
SVN(Subversion)是一个版本控制系统,可以管理和跟踪文
件和目录的修改历史。

它可以帮助团队协同开发,同时提供了版本控制、分支管理、冲突解决和协同开发等功能。

首先,SVN提供了版本控制功能,在一个项目中的每个文件
和目录都有一个独立的版本号,可以随时回溯到之前的版本。

这样,即使出现了错误或者需要回滚到之前的版本,也可以很方便地还原。

其次,SVN支持分支管理,可以创建不同的分支来进行独立
开发,然后将分支合并到主分支中。

这样可以避免多人同时修改同一个文件而引发冲突的情况,并保证团队成员的并行开发。

此外,SVN还可以帮助解决冲突。

当多个团队成员同时修改
了同一个文件,并提交到版本库时,SVN会自动检测到冲突,并给出冲突标记。

然后可以使用SVN提供的冲突解决工具,
手动解决冲突或者合并文件。

最后,SVN支持协同开发。

多个团队成员可以同时在同一个
项目上工作,并共享文件和目录。

通过SVN的权限管理功能,可以设定不同的权限给予不同的团队成员,控制他们对文件和目录的访问和修改权限。

总之,SVN作为一款强大的版本控制系统,不仅提供了版本
控制、分支管理、冲突解决和协同开发等基本功能,而且还具备高度稳定性和易用性。

它已经在许多软件开发团队中被广泛
应用,提高了团队协作效率,并帮助开发人员更好地管理和追踪项目的变更历史。

SVN管理规范

SVN管理规范

SVN管理规范一、引言SVN(Subversion)是一种版本控制系统,它能够追踪和管理文件和目录的变化,为团队协作开辟提供了便利。

为了确保SVN的有效使用和管理,制定一套SVN管理规范对于项目的顺利进行至关重要。

二、SVN仓库管理1. 仓库命名规范- 仓库名称应简明扼要,能够清晰表达其所属项目或者部门。

- 仓库名称应使用全小写字母,可以使用连字符或者下划线进行单词分隔。

- 避免使用过于复杂或者含有特殊字符的仓库名称。

2. 仓库权限管理- 仓库管理员应根据项目或者部门的需求,合理分配用户权限。

- 严格控制对仓库的读写权限,仅授权给相关人员。

- 定期审查和更新仓库权限,确保权限的合理性和安全性。

3. 仓库备份- 定期对仓库进行备份,确保数据的安全性和完整性。

- 备份数据应存储在可靠的设备或者服务器上,远离潜在的风险和灾害。

三、SVN代码管理1. 项目结构规范- 项目应按照一定的层次结构进行组织,便于管理和维护。

- 项目根目录下应包含trunk、branches和tags三个子目录。

- trunk目录用于存放主要的开辟代码,branches目录用于存放分支代码,tags 目录用于存放发布版本的代码。

2. 分支管理- 分支应根据项目需要进行创建,每一个分支应有明确的目的和命名规范。

- 分支的创建、合并和删除应经过相应的讨论和审批。

- 定期进行分支合并,确保主干代码的稳定性和一致性。

3. 提交规范- 提交时应提供清晰的提交信息,说明本次提交的目的和内容。

- 提交信息应简明扼要,避免使用含糊不清或者无意义的描述。

- 提交前应确保代码的完整性和可编译性,避免提交存在错误或者冲突的代码。

4. 版本管理- 标记重要的版本里程碑,使用tags目录进行存档和管理。

- 每一个版本的标记应包含版本号、发布日期和简要说明。

- 版本标记应遵循一定的命名规范,便于快速定位和识别。

四、SVN日志管理1. 日志书写规范- 每次提交待码时,应书写详细的日志记录,包括修改的文件、修改的内容和原因等。

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)系统,这种系统经过特定的精巧设计来管理源代码,有许多关于软件开发的特性—本身理解编程语言、或者提供构建程序的工具。

SVN管理规范

SVN管理规范

SVN管理规范SVN(Subversion)管理规范一、概述SVN(Subversion)是一种版本控制系统,用于管理和追踪文件和目录的变更。

本文旨在制定SVN管理规范,以确保团队成员能够正确、高效地使用SVN进行版本控制,保证代码的稳定性和可追溯性。

二、SVN仓库的创建与组织1. 仓库创建1.1 在服务器上创建SVN仓库,指定合适的路径和权限。

1.2 为仓库设置合适的名称,反映项目的名称或者功能。

1.3 确保仓库路径和名称易于理解和记忆。

2. 仓库组织2.1 在仓库中创建合适的目录结构,以便于团队成员快速定位和管理文件。

2.2 按照项目、模块或者功能进行分类,避免将所有文件都放在根目录下。

2.3 使用合适的命名规范,以便于识别和理解目录和文件的用途。

三、SVN操作规范1. 提交待码1.1 在提交待码前,先更新本地代码,确保与服务器上的最新版本保持一致。

1.2 提交待码时,确保只提交相关的文件和目录,避免提交无关的文件。

1.3 提交时,附上故意义的注释,描述本次提交的目的和内容。

2. 分支与合并2.1 当需要进行功能开辟或者修复时,基于主干(trunk)创建相应的分支(branch)。

2.2 在分支上进行开辟或者修复,确保不影响主干上的稳定版本。

2.3 定期将主干上的变更合并到分支上,保持分支与主干的同步。

2.4 功能开辟或者修复完成后,将分支合并回主干,并及时删除再也不需要的分支。

3. 标签管理3.1 当发布一个版本时,基于主干创建相应的标签(tag)。

3.2 标签用于标记特定版本的代码,以便于追溯和回滚。

3.3 标签普通不允许修改,确保标签的稳定性。

四、SVN权限管理1. 用户权限1.1 根据团队成员的职责和需求,为每一个成员分配适当的SVN权限。

1.2 确保权限的最小化原则,即每一个成员只拥有其工作所需的最低权限。

2. 分组权限2.1 根据团队的组织结构和工作流程,将成员分组,并为每一个组分配适当的SVN权限。

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管理规范

SVN管理规范引言:版本控制是软件开辟过程中非常重要的一环,而SVN(Subversion)作为一款流行的版本控制系统,被广泛应用于软件开辟团队中。

为了确保项目的顺利进行和代码的可维护性,SVN管理规范是必不可少的。

本文将详细介绍SVN管理规范的内容。

一、版本库的组织1.1 项目结构- 版本库应按照项目进行组织,每一个项目对应一个独立的版本库。

- 在版本库中,可以根据项目的不同模块或者功能划分不同的目录。

1.2 分支与标签- 分支用于并行开辟不同版本的代码,应在需要并行开辟的版本上创建分支。

- 标签用于标记重要的版本,例如发布版本或者里程碑版本。

1.3 目录结构- 版本库中的目录结构应清晰明了,便于开辟人员快速定位所需文件。

- 避免在版本库中创建过多的目录层级,以免造成混乱和不必要的复杂性。

二、代码提交与更新2.1 提交前的准备工作- 在提交待码之前,应先执行更新操作,确保本地代码与版本库中的代码保持一致。

- 检查代码是否符合编码规范,确保代码质量。

2.2 提交信息的规范- 提交信息应简明扼要地描述本次提交的内容。

- 提交信息应包括相关的任务或者缺陷编号,便于追踪和溯源。

2.3 避免提交不必要的文件- 避免将编译生成的文件、暂时文件或者IDE相关文件提交到版本库中。

- 忽稍不必要的文件或者目录,以减小版本库的体积。

三、分支与合并3.1 分支的创建与合并- 在需要并行开辟的版本上创建分支,确保不同版本的代码相互独立。

- 分支合并前应先进行测试,确保合并的代码不会引入新的问题。

3.2 处理冲突- 在合并分支时,可能会浮现代码冲突的情况。

解决冲突时,应与相关人员进行沟通,确保解决方案的一致性。

- 解决冲突后,应进行全面的测试,确保合并后的代码没有引入新的问题。

3.3 定期合并主干代码- 定期将分支中的代码合并到主干,确保分支代码与主干代码的同步性。

- 合并前应先进行测试,确保合并的代码不会影响主干代码的稳定性。

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管理规范引言概述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 (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权限配置的文章,都感觉千篇一律,刚开始接触svn的人看着还有点绕,其实自己懂了svn权限的关键点,然后逐步尝试,这样的话效果会更好,下面就是我的实际操作,分享给大家,也给自己做个总结。

备注:本次测试的服务器是用的CollabNet Subversion Edge,客户端用的TortoiseSVN;测试过程分析:一.测试单独用户权限,不存在组的信息:测试一:svn_auth_file--用户文件配置内容:admin:$apr1$ExUVYcIZ$6HFRPa9ZFwrmj5krzW.ip0zhangshan:$apr1$N1nt8KdS$HAm0io/5OTIHKxI.D47NP1zhaoliu: zhaoliu说明:admin是登录http://192.168.0.240:3343/csvn/,系统自动生成的默认用户;zhangshan是在界面“用户--用户列表”中创建的;zhaoliu是在服务器端直接编辑svn_auth_file文件添加的;svn_access_file--权限文件配置内容:[/]* =admin = rw[LTest:/]zhaoliu = rw权限文件解析:[/]代表对所有仓库的权限也是根目录的意思;*= 代表所有人无任何权利,等后面再一步一步对人逐个设置权限;admin=rw 表示admin用户具备根目录下的读写权限;[LTest:/]表示仓库"LTest" 的访问权限;zhaoliu = rw 表示zhaoliu这个用户对LTest库下所有的内容有读写权限;测试结果:用admin和zhaoliu的账号可以检出LTest库,zhangshan不可以;用admin和zhaoliu的账号可以只检出LTest/document目录,zhangshan不可以;测试二:svn_auth_file--用户文件不变svn_access_file--权限文件修改为配置内容:[/]* =admin = rw[LTest:/]zhaoliu = rw[LTest:/document]zhaoliu = rzhangshan = rw测试结果:前一次的结果admin和zhaoliu的账号权限仍然有效;用zhangshan的账号不能检出LTest库,可以直接检出LTest/document目录,且可以对文件进行读写操作;测试三:svn_auth_file--用户文件不变svn_access_file--权限文件修改为配置内容:[/]* =admin = rw[LTest:/]liting = rw[LTest:/document]liting = rzhangshan = rw[LTest:/old]zhangshan = rw* =测试结果:1)前一次的结果admin和zhaoliu,zhangshan的账号权限仍然有效;2)用zhangshan的账号不能检出LTest库,可以直接检出LTest/old目录,且可以对文件进行读写操作;3)用zhaoliu的账号不能直接检出LTest/old目录,但是由于在[LTest:/]下zhaoliu是有读写权限的,所以在直接检出LTest时,只能检出document,在此继承[LTest:/document]的权限只能读不能修改文件;二.测试用户组权限:测试一:svn_auth_file--用户文件配置内容:admin:$apr1$ExUVYcIZ$6HFRPa9ZFwrmj5krzW.ip0zhangshan:$apr1$N1nt8KdS$HAm0io/5OTIHKxI.D47NP1zhaoliu: zhaoliuwangwu:wangwulishi:lishi说明:admin是登录http://localhost:3343/csvn/,系统自动生成的默认用户;zhangshan是在界面“用户--用户列表”中创建的;zhaoliu,wangwu,lishi是在服务器端直接编辑svn_auth_file 文件添加的;svn_access_file--权限文件配置内容:[groups]admin = admin, zhaoliudevelopers = zhangshan,wangwumanager = lishi[/]* =@admin = rw[LTest:/]@developers = r@manager = rw测试结果:用户组@admin,@manager可以检出LTest库且可以修改文件,@develop只能检出文件浏览,不能进行操作;测试二:增加内容:[LTest:/document]@developers = rwzhaoliu = r* =测试结果:1)用户组@developers可以检出整个LTest库,对document目录可读写,对old目录只读;2)用户zhaoliu,首先继承@admin用户组对根目录[/]下所有配置库的读写权限,其次遵守对LTest/document目录的只读权限,所以最后是可以检出整个LTest库,对document目录可读,对old 目录可读写;三.测试含有中文的文件夹权限设置svn_access_file--权限文件新增[TestChinaNameFolder:/]@manager = r@developers = r[TestChinaNameFolder:/00项目管理]@manager = rw* =[TestChinaNameFolder:/01用户需求]@developers = rw* =测试结果:1)用户组@admin继承根目录的读写权限,且TestChinaNameFolder库下的00和01两个子目录都设置了除某固定组外其他无法访问,@admin最终只能看到或checkout出除00和01以外的目录;2)用户组@manager继承[TestChinaNameFolder:/]库的只读权限,且在子目录00下拥有读写权限,且01设置固定组外其他无法访问,@manager最终对TestChinaNameFolder库下00子目录有读权限,无法看到01子目录;3)用户组@developers继承[TestChinaNameFolder:/]库的只读权限,且在子目录01下拥有读写权限,且00设置固定组外其他无法访问,@developers最终对TestChinaNameFolder库下01子目录有读权限,无法看到00子目录;svn权限设置总结:总的规则:svn权限是以文件夹作为区分的,svn权限有继承性,但是只以当前位置的权限为使用权限(可以在测试中看出);详细分析:1)[/]配置库根目录允许只有管理员有读写权限;2)[Repository:/]配置库目录的权限会影响用户对此配置库下所有子文件夹的权限;但是某个子文件夹的权限,只对具体设置的某个组或用户有效,若有* = ,则其他用户无法看到此文件夹,若无* = ,则其他用户的权限会继承上层权限,若上层权限没有则此处也没有;比如:在“单个用户权限测试”测试三中,用户liting对LTest整个库有读写权限,但是对库下面的doucument 文件夹只有只读权限,那就只能浏览文件,不能对文件进行修改删除;她对库下面的old文件夹没有权限,在执行检出命令时,也就不会检出old文件夹;3)* = 在子文件夹中谨慎使用,如果在子文件夹中设置了此权限,就表示设置权限的这个目录除了已有用户对此有对应权限外,其他用户是看不到此目录的,像隐藏起来了;比如:在“用户组权限测试”测试二中,用户组@manager和@admin继承测试一中的群组权限,对LTest 配置库有读写权限,但是对于在测试二中的设置,除了用户组@developer能直接检出document且可进行读写外,其他用户组,不能直接检出该目录,且在LTest根目录下检出的内容只有old目录,没有document;4)在设置权限时候,一般[/]根目录给svn管理员开放读写权限,其他设置无权限;对于具体的配置库,针对于相关的用户组设置读写,对于配置库的子目录不需要看到的用户组使用* = 控制;5)在具体配置库下面拥有只读或者读写权限的用户或组,若某子目录中设置* = 且未给此用户或组设置只读或读写权限,则在浏览或checkout配置库时该用户或组看不到此子目录;6)在配置svn权限的时候,需要考虑到子目录对上层目录权限的继承性,这样才能精确的配置好权限;7)如果svn配置库结构有涉及到中文的,必须把权限文件的字符编码转换成UTF-8,权限才会生效:具体方法:用UE打开权限文件,选择“文件--另存为--格式--UTF-8 无BOM”,就可以了;。

UberSVN权限精密配置

UberSVN权限精密配置

UberSVN的详细配置及使用一、配置文件的使用本文将详细介绍SVN权限配置涉及的两个配置文件,svnserve.conf和aleternative_svn.authz,通过对对这两个文件的详细配置,可以控制每个人对不同文件夹的访问权限。

这里首先要注意一点,任何配置文件的有效配置行,都是不允许存在前置空格,否则程序可能会出错,还有在conf这个目录下面不能再有其它的.authz文件,否则会直接导致配置文件失效,所有用户均无法访问的问题。

svnserve.conf-------------ubersvn\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,项目目录访问权限的相关配置是放在aleternative_svn.authz文件里::authz-db = aleternative_svn.authz上述的passwd.conf 和aleternative_svn.authz 两个文件也可以作为多个代码库共享使用,我们只要将它们放在公共目录下,比如说放在/ubersvn/conf 目录下,然后在每个代码库的svnserve.conf 文件中,使用如下语句::password-db = ..\..\passwd.confauthz-db = ..\..\ aleternative_svn.authz或者::password-db = ../../passwd.confauthz-db = ../.. aleternative_svn.authz这样就可以让多个代码库共享同一个用户密码、目录控制配置文件,这在有些情况下是非常方便的。

CentOS6.5搭建SVN服务(目录权限设置)

CentOS6.5搭建SVN服务(目录权限设置)

centOs6.5 SVN服务器搭建搭建后根据权限需求不同可以设定不同目录的访问权限。

第一步,安装SVN1.yum install subversion第二步,创建SVN版本库的目录1.mkdir -p /var/svn/svntest第三步,创建版本库1.svnadmin create /var/svn/svntest执行完上面命令后会生成如下文件,说明版本库创建成功:第四步,进入conf目录配置该版本库的文件:authz文件是权限控制文件passwd是帐号密码文件svnserve.conf SVN服务配置文件第五步,配置passwd,语法:用户名= 密码,我的配置如下:1.[users]2.czj = mmt.20153.xhb = xu85686827第六步,配置authz用户权限文件,rw是有读写权限,w只有读权限:1.[groups]2.admin_group = czjer_group = xhb4.5.[/userfile]6.@user_group = rw7.@admin|_group = rw8.[/adminfile]9.@admin_group = rw第七步,配置svnserve.conf文件,基本上一进去就看到都是被注释掉的,所以要打开下面几个注释:anon-access = read #匿名用户可读auth-access = write #授权用户可写password-db = passwd #使用哪个文件作为账号文件authz-db = authz #使用哪个文件作为权限文件realm = /var/svn/svntest # 认证空间名,版本库所在目录第八步,启动SVN版本库,大功告成:1.启动SVN svnserve -d -r /var/svn/svntest2.关闭SVN ps aux | grep -i svnkill 2603最后你可以在电脑上做测试了,建立一个对应的adminfile文件夹,Checkout一下你配置的版本库,输入你刚刚配置的admin_group对应的文件路径:这样用admin_group组对应的用户登陆就可以访问adminfile目录建立一个对应的userfile文件夹,Checkout一下你配置的版本库,输入你刚刚配置的user_group对应的文件路径:这样用user_group组对应的用户登陆就可以访问userfile目录,同时authz文件设置了admin_group组对userfile目录也有访问权限,所以admin_group对应的组员亦可访问此目录。

SVN的权限配置

SVN的权限配置
@g_manager = rw
@g_docs = rw
* = r
[arm:/temp]
* = rw
测试
----
在服务器上,打开一个 DOS Prompt 窗口,输入如下指令::
svn co svn://127.0.0.1/arm --no-auth-cache --username rory --password 8809117
authz.conf 项目根目录
---------------------
接着,我们对项目根目录做了限制,该目录只允许arm事业部的经理才能修改,其他人都只能眼巴巴的看着::
[arm:/]
@g_manager = rw
* = r
- ``[arm:/]`` 表示这个目录结构的相对根节点,或者说是 arm 项目的根目录
:作者: 郑新星
:联系: zhengxinxing gmail com
:状态: 草稿,编写中
:版本: 0.3
:修订: $Id: The.Road.to.Subversion_authz.txt 57 2006-06-14 13:19:23Z michael $
:版权: 作者保留对本文的一切修改、发布权力。任何人想要转载本文部分或全部内容时,必须保留包括作者、联系、状态、版本、修订、版权,共六项信息。对本文的参考引用,则不受限制。
[general]
password-db = passwd.conf
anon-access = none
auth-access = write
authz-db = authz.conf
管理用户帐号
------------

SVN权限解析规则详解

SVN权限解析规则详解

SVN权限解析规则详解 最近在做⼀个操作SVN的Web系统,涉及到了很多东西,包括apache执⾏命令、配置⽂件解析等;编码过程中发现svn的权限解析过程和我所了解到的不⼤相同,在⽹上查了⼀些资料,但好像都是怎么配置svn,没有详细讲解权限的⽣效过程,⽽我开发系统需要考虑到各种情况,所以我⾃⼰通过⼀部分资料和动⼿实验总结了下⾯的svn权限解析规则。

如果这些内容不是很全⾯或者有错误,可以提出来,我也会在后⾯修改补充。

⾸先创建⼀个版本库后,会⽣成最初的⽬录结构和基本的配置⽂件,本⽂主要分析“authz”⽂件的内容;我们先抛开alias和groups不谈,将重点放在路径的权限配置上。

⼀. 权限格式 svn权限的基本规则如下:[/path]user1=ruser2=rw*=[/path/path2]user1=rw 上⾯的代码配置了两条路径的权限,'[]'括起来的是路径名,权限的格式是'user=权限',权限的类别有空、r、rw,上⾯的*=意思是所有⼈没有权限。

所以上⾯的配置是:路径/path上user1有读权限,user2有读写权限,其他所有⼈没有权限;路径/path/paths上user1有读写权限。

⼆. 权限规则 1.在路径上配置过权限的⽤户(r/rw),⽆论在其⽗⽬录上有⽆权限,都对该路径有权限,例如:[/trunk]user1=r*=[/trunk/app]user2=rw*= 如上,user1对/trunk有读权限,user2对/trunk/app有读写权限,但是对/trunk没有权限,但是user2仍然可以操作/trunk/app下的内容。

之前在TortoiseSVN上查看⽬录树的时候发现如果⽗⽬录没有权限的话是⽆法查看有权限的⼦⽬录的,导致误解为⽗⽬录没权限则⼦⽬录没权限,后来通过checkout和commit等证实⽤户对该路径是有权限的。

注:如果⽗⽬录没有配置任何权限,在TortoiseSVN⽬录树中是可以看到有权限的⼦⽬录的,但是看不到⽗⽬录的其他⼦⽬录。

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

================Subversion之路================----------------------------实现精细的目录访问权限控制----------------------------:作者: 郑新星:联系: zhengxinxing <A T> gmail <DOT> com:状态: 正稿:版本: 1.0:修订: $Id: The.Road.to.Subversion_authz.rst 1749 2006-12-05 08:05:59Z zhengxinxing $:版权: 作者保留对本文的一切修改、发布等权力。

任何人想要转载本文部分或全部内容时,必须保留包括作者、联系、状态、版本、修订、版权,共六项信息,并给出出处。

对本文的参考引用,则不受限制。

:关键词: Subversion 目录访问权限:献辞:仅以本文,献给中国广大的自由软件爱好者们:摘要:本文从一个实际的例子入手,介绍了如何利用Subversion 自带的目录管理功能,来实现对项目目录的精细访问权限的控制。

同时描述了在配置的过程中,需要注意的一些地方,如对中文的处理等。

.. section-numbering::.. contents:: 目录:backlinks: top前言====Subversion 权限简介-------------------在Subversion 的使用当中,存在“认证”、“授权”两个概念。

认证,即authentication,是指用户名与密码的认证。

授权,即authorization ,是指某用户对某个目录是否具备读、写权限的一种审核。

这两者配合作用,就组成了Subversion 的整个帐户管理体系。

在实际的工作当中,我们有时候会遇见需要控制项目目录的访问权限的情况,比如说对项目的一些关键模块进行限制,仅允许少数授权人士才可以修改等。

由于项目的目录本身就是作为版本库的一个部分被Subversion 所收管,所以我们无法利用操作系统的帐户权限体系,来实现授权控制。

因此,这个问题就只有让svn自己来解决了。

Subversion 提供了面向目录的帐户权限管理功能,通过它,我们就可以很精确地实现项目目录的访问控制。

不过对于对Apache 的配置与使用不是很熟悉的人来说,就不是很方便了。

而Subversion终于在 1.3 版本上,在svnserve.exe 服务器里面添加了这一功能,方便了很多人。

其他信息--------本文面向那些Subversion 的管理员,或者任何对Subversoin 有兴趣的人们。

本文假定读者对Subversion有一定的了解,因此不打算对所有涉及到的安装、使用,做一个细节性的描述。

若对于文章中描述的其他细节方面有所疑问,请访问“参考文献”一节里面的参考资料。

如果你对本文任何地方有什么意见,或者发现本文有着大大小小的错误,请联系zhengxinxing <A T> gmail <DOT> com 。

本文是基于Subversion 1.3.2、MS Windows 2003 Server Edition 平台来编写的,且Subversion 服务器是利用svnserve.exe 来架设的。

不过,本文讲述到的绝大多数内容,都是不仅与操作系统平台无关,而且与是采用svnserve(.exe) 还是使用Apache 来作为Subversion 服务器也基本无关。

因此为免罗嗦,本文就以svnserve(.exe) 为例进行描述,而略过Apache 服务器相关的内容,有兴趣的读者可以参考其他文章来在Apache 服务器下实现类似的功能。

本文是利用reST 格式来编写的,如果你对它感兴趣,请访问/rst.html。

如果想要看到更好的html格式,你可以通篇复制本文到一个文本文件里,然后利用docutils 的rst2html.py 脚本编译它,当然,首先你必须安装python。

本文的获得方式:- 原始发布点:/bbs/thread-6-1-1.html- 完整源文件,请利用svn 命令来获取,命令为 ``svn co svn:///woodpecker/zqlib/tangle/michael.zheng/road2svn``- HTML版式文件,请访问http://zhengxinxing.googlepages. ... bversion_authz.html(推荐)或/archives ... version1authz.shtml致谢====非常感谢 站的站长PCplayer ,他在本文编写过程中,给我提出了很多宝贵的意见与建议。

感谢 提供的Subversion 空间,让更多的人可以通过svn 获得本文件。

感谢google 公司提供的免费主页空间,让我可以放置完全定制的HTML 文件。

实战====本章先直接给出需求及其最终的结果,如果你觉得对配置有什么疑问,或者看不懂,请不要着急,我会在后面的章节详细描述的。

背景假设--------厦门央瞬公司是一家电子元器件设备供应商,其中有个ARM部门,专门负责ARM芯片的方案设计、销售,并在北京、上海各设立了一个办事处。

对于工作日志,原先采用邮件方式发给经理,但是这种方式有个缺点,那就是不具备连续性,要看以前的日志必须一封一封邮件去查看,很麻烦。

于是就想到利用Subversion,让员工在自己电脑上编辑日志,然后利用svn传送回来,既方便员工自己编写日志,又方便对日志的归档处理,而且提交日志的时候只需要执行一下svn commit 即可,比发送邮件还要简单的多。

- svn服务器相关信息- 服务器地址:192.168.0.1- 服务器OS:MS Windows 2000 Server Edition 中文版- 用于存放日志的代码库本地目录:``D:\svn\arm``- arm部门文档的目录结构如下::arm 部门名称├─diary工作日志目录│├─headquarters总部工作日志目录│├─beijing北京办日志目录│└─shanghai上海办日志目录├─ref公司公共文件参考目录└─temp临时文件目录- 人员情况- morson,公司总经理,不习惯使用电脑,更喜欢传统的纸与笔,以及面对面的交流- michael,arm事业部的部门经理,没事的时候喜欢弄点儿新技术,用svn来管理日志,就是他想出来的主意 - scofield,北京办人员,老员工,为人油滑难管- lincon,上海办人员,老员工,大老实人一个- linda,总部协调员、秘书,文笔不错,长得也不错- rory,单片机技术员,技术支持- 访问权限需求分析- 允许总经理、部门经理读取所有文件。

顺便给他们开放写权限,以便体现对他们职位的尊重,虽然对于某些文件来说,他们若拥有“写”权限其实也没什么用处- 除部门经理外,所有其他人员,均只能看到本办事处人员工作日志- 不允许匿名访问- ref目录只允许经理和秘书读写,对其他人只读- temp目录人人都可以随意读写使用svnserve.exe 作为Subversion 服务器----------------------------------------本节描述如何利用svnserve.exe 来作为代码库服务器端,实现上述功能。

至于另外一种代码库服务器端,即利用Apache 结合mod_dav_svn.so 来实现的代码库服务器端,由于其对于本文叙述的内容“实现精细的目录访问权限控制”而言,与前者没有太大的区别,故而略过不提。

它们二者只是在初次安装、配置方面存在一些不同,有兴启动Subversion 服务````````````````````在服务器端,打开一个命令行窗口,用CD命令进入Subversion 安装目录下的bin 目录,运行如下指令::svnserve -d -r d:\svn其中的-d 参数表示svnserve.exe 将会作为一个服务程序运行在后台,而-r 参数表示将``D:\svn`` 目录指定为代码库的根目录。

这样,当客户端使用类似svn://192.168.0.1/foo 这样内容的URL 来访问服务器时候,其所访问到的真实代码库,其实就是``D:\svn\foo``用上述命令行方式启动的svn 服务有个小缺点,就是在本试验过程中,服务器端必须要一直开着那个运行了上述命令的DOS窗口,不能关闭它。

如果不想看到这个窗口,可以将svnserve 安装成windows 的一个services,安装方式请参考其他文章。

建立代码库``````````在服务器端的``D:\svn`` 目录下,建立一个名为arm 的代码库,命令如下::D:\svn>svnadmin create arm使用上述命令之后,如果不出问题的话,在``D:\svn`` 目录下就会多出一个叫做``arm`` 的目录,其下具备conf、dav、hooks、locks、db 等子目录或文件,此即**一个名为arm的代码库** 。

从此,通过``svn://192.168.0.1/arm`` 这样的URL,我们就可以对这个代码库进行访问了。

接下来就要进入本文的正题了,也就是权限配置部分了。

其实进入``arm\conf`` 目录你就会发现,它下面已经存在三个写了一些帮助信息和示例的配置文件,以帮助用户尽早掌握其配置方法。

这三个默认的配置文件分别是svnserve.conf、passwd、authz 。

其中后两者没有后缀,对于windows 系统的用户来说,看起来总是有些怪异,所以在接下来的章节里面,我将它们两个都给添加了个conf 后缀,以便管理。

编辑代码库基础配置文件``````````````````````在服务器端,编辑代码库的``arm\conf\svnserve.conf`` 文件,如下::[general]password-db = passwd.confanon-access = noneauth-access = writeauthz-db = authz.conf管理用户帐号````````````在服务器端,新建``arm\conf\passwd.conf`` 文件,如下::[users]michael = mysecretpasswordscofield = hellolittilekillerlincon = asyouknows111rory = 8809117linda = IlikeWorldCup2006建立目录访问权限控制文件````````````````````````在服务器端,新建``arm\conf\authz.conf`` 文件,内容如下::[groups]g_vip = morsong_manager = michaelg_beijing = scofieldg_shanghai = lincong_headquarters = rory, lindag_docs = linda[arm:/]@g_manager = rw* = r[arm:/diary/headquarters]@g_manager = rw@g_headquarters = rw@g_vip = r* =[arm:/diary/beijing]@g_manager = rw@g_beijing = 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导入代码````````在客户机``F:\temp`` 目录下,建立好前述“背景假设”一节中描述的目录结构,然后用命令``F:\temp>svn import arm svn://192.168.0.1/arm --username michael --password mysecretpassword`` 导入整个目录结构。

相关文档
最新文档