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功能

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

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

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

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

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

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

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

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

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

最后,SVN支持协同开发。

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

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

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

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

svn 管理规范

svn 管理规范

svn 管理规范svn管理规范版本控制系统(Version Control System,简称VCS)是软件开发过程中非常重要的一环。

它可以帮助开发者管理和跟踪代码的变更,并且提供团队协作的平台。

其中,Subversion(简称svn)是一种常用的版本控制系统,本文将介绍svn的管理规范,以帮助团队更好地利用和维护代码库。

一、项目目录结构规范在svn中,良好的项目目录结构有助于提高代码的管理效率。

下面是一种常用的目录结构示例:/trunk:主开发分支,包含最新稳定版本的代码。

/branches:用于存放各个功能开发分支,每个分支对应一个特定的功能或任务。

/tags:用于存放各个版本的发布代码,每个版本对应一个标签。

除了上述目录外,可以根据具体项目的需求,在项目目录下添加适当的子目录,用于存放文档、配置文件等。

保持目录结构的一致性和规范性,有助于团队成员之间的协作和代码追溯。

二、提交日志规范在svn中,提交日志(Commit Log)是记录代码变更的重要信息,它对于维护代码历史、查找改动原因等都非常有价值。

因此,编写规范的提交日志是必要的。

以下是一些提交日志规范的建议:1. 简明扼要:提交日志应该简洁明了,能够快速传递变更的信息。

2. 描述变更内容:明确记录每次变更的具体内容,例如修复了某个bug、新增了某个功能等。

3. 引用相关事项:如果某次提交与特定的issue、需求或者任务相关,应该在提交日志中进行引用。

4. 避免无意义的提交:避免不必要的提交,例如空格调整、拼写错误修正等。

三、分支管理规范svn的分支功能可以帮助团队进行并行开发,不同功能模块可以在不同的分支上进行独立开发,最后再进行合并。

以下是一些建议的分支管理规范:1. 主分支保持稳定:将主分支(/trunk)保持稳定,只有经过测试和验证的代码才能合并至主分支。

2. 分支命名规范:分支命名应具备一定的可读性,可以采用功能模块的名称或者相关的任务、需求编号等。

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,我们就创建‎一个用户了‎。

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的权限管理与设置

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安装及权限配置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权限配置的文章,都感觉千篇一律,刚开始接触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⽬录树中是可以看到有权限的⼦⽬录的,但是看不到⽗⽬录的其他⼦⽬录。

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权限配置
去掉: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
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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。
1.2 其他信息本文面向那些 Subversion 的管理员,或者任何对 Subversoin 有兴趣的人们。本文假 定读者对 Subversion 有一定的了解,因此不打算对所有涉及到的安装、使用,做一个细节性的描述。 若对于文章中描述的其他细节 方面有所疑问,请访问“参考文献”一节里面的参考资料。如果你对本 文任何地方有什么意见,或者发现本文有着大大小小的错误,请联系 zhengxinxing <AT> gmail <DOT> com 。
1 前言 1.1 Subversion 权限简介在 Subversion 的使用当中,存在“认证”、“授权”两个概念。认证, 即 authentication,是指用户名与密码的认证。授权,即 authorization ,是指某用户对某个目录是 否具备读、写权限的一种审核。这两者配合作用,就组成了 Subversion 的整个帐户管理体系。
3.1 背景假设厦门央瞬公司是一家电子元器件设备供应商,其中有个 ARM 部门,专门负责 ARM 芯 片的方案设计、销售,并在北京、上海各设立了一个办事处。对于工 作日志,原先采用邮件方式发给 经理,但是这种方式有个缺点,那就是不具备连续性,要看以前的日志必须一封一封邮件去查看,很麻 烦。于是就想到利用 Subversion, 让员工在自己电脑上编辑日志,然后利用 svn 传送回来,既方便 员工自己编写日志,又方便对日志的归档处理,而且提交日志的时候只需要执行一下 svn commit 即 可,比发送邮件还要简单的多。
本文是基于 Subversion 1.3.2、MS Windows 2003 Server Edition 平台来编写的,且 Subversion 服务器是利用 svnserve.exe 来架设的。不过,本文讲述到的绝大多数内容,都是不仅与操作系统平台 无关,而且与是采用 svnserve(.exe) 还是使用 Apache 来作为 Subversion 服务器也基本无关。因 此为免罗嗦,本文就以 svnserve(.exe) 为例进行描述,而略过 Apache 服务器相关的内容,有兴趣 的读者可以参考其他文章来在 Apache 服务器下实现类似的功能。
│ ├─beijing
北京办日志目录
│ └─shanghai
上海办日志目录
├─ref
公司公共文件参考目录
└─temp
临时文件目录
人员情况
morson,公司总经理,不习惯使用电脑,更喜欢传统的纸与笔,以及面对面的交流 michael,arm 事业部的部门经理,没事的时候喜欢弄点儿新技术,用 svn 来管理日志,就是他想出来 的主意 scofield,北京办人员,老员工,为人油滑难管 lincon,上海办人员,老员工,大老实人一个 linda,总部协调员、秘书,文笔不错,长得也不错 rory,单片机技术员,技术支持 访问权限需求分析
用上述命令行方式启动的 svn 服务有个小缺点,就是在本试验过程中,服务器端必须要一直开着那个 运行了上述命令的 DOS 窗口,不能关闭它。如果不想看到这个窗口,可以将 svnserve 安装成 windows 的一个 services,安装方式请参考其他文章。
3.2.2 建立代码库 在服务器端的 D:\svn 目录下,建立一个名为 arm 的代码库,命令如下:
3.2.3 编辑代码库基础配置文件 在服务器端,编辑代码库的 arm\ conf\ svnserve.conf 文件,如下:
[general] password-db = passwd.conf anon-access = none auth-access = write authz-db = authz.conf
3.2.1 启动 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
其实进入 arm\conf 目录你就会发现,它下面已经存在三个写了一些帮助信息和示例的配置文件,以 帮助用户尽早掌握其配置方法。这三个默认的配置文件分别是 svnserve.conf、passwd、authz 。其 中后两者没有后缀,对于 windows 系统的用户来说,看起来总是有些怪异,所以在接下来的章节里 面,我将它们两个都给添加了个 conf 后缀,以便管理。
D:\ svn>svnadmin create arm
使用上述命令之后,如果不出问题的话,在 D:\ svn 目录下就会多出一个叫做 arm 的目录,其下具备 conf、dav、hooks、locks、db 等子目录或文件,此即 一个名为 arm 的代码库 。从此,通过 svn://192.168.0.1/arm 这样的 URL,我们就可以对这个代码库进行访问了。接下来就要进入本文的 正题了,也就是权限配置部分了。
本文的获得方式:
原始发布点: /bbs/thread-6-1-1.html 完整源文件,请利用 svn 命令来获取,命令为 svn co svn:///woodpecker/zqlib/tangle/michael.zheng/road2svn HTML 版式文件,请访问 /The.Road.to.Subversion_authz.html (推荐)或 /archives/2006/TheRoadToSubversion1authz.shtml 。 2 致谢非常感谢 站的站长 PCplayer ,他在本文编写过程中,给我提出了很多宝贵的 意见与建议。
svn 服务器相关信息
服务器地址: 192.168.0.1 服务器 OS: MS Windows 2000 Server Edition 中文版 用于存放日志的代码库本地目录: D:\ svn\ arm arm 部门文档的目录结构如下:
arm
部门名称
├─diary
工作日目录
│ ├─headquarters 总部工作日志目录
Subversion 提供了面向目录的帐户权限管理功能,通过它,我们就可以很精确地实现项目目录的访问 控制。不过在 1.2 及其以前的版本,我们只能利用 mod_authz_svn.so 模块,结合 Apache 服务器
来实现目录访问控制,这对于对 Apache 的配置与使用不是很熟悉的人来说,就不是很方便了。而 Subversion 终于在 1.3 版本上,在 svnserve.exe 服务器里面添加了这一功能,方便了很多人。
SVN 实现精细的目录访问权限控制
目录
1 前言 1.1 Subversion 权限简介 1.2 其他信息 2 致谢 3 实战 3.1 背景假设 3.2 使用 svnserve.exe 作为 Subversion 服务器 3.2.1 启动 Subversion 服务 3.2.2 建立代码库 3.2.3 编辑代码库基础配置文件 3.2.4 管理用户帐号 3.2.5 建立目录访问权限控制文件 3.2.6 导入代码 3.2.7 测试 4 深入 4.1 svnserve.conf 4.2 authz.conf 之用户分组 4.3 authz.conf 之项目根目录 4.4 authz.conf 之项目子目录 4.5 authz.conf 之目录表示法 4.6 authz.conf 的其他注意点 5 改进 5.1 对中文目录的支持 6 参考文献 7 历史轨迹
3.2.5 建立目录访问权限控制文件 在服务器端,新建 arm\ conf\ authz.conf 文件,内容如下:
[groups] g_vip = morson g_manager = michael g_beijing = scofield g_shanghai = lincon g_headquarters = rory, linda g_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
相关文档
最新文档