SVN实现精细的目录访问权限
- 格式:pdf
- 大小:373.42 KB
- 文档页数:11
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 文件的读写权限。
使用正则表达式进行路径分配权限可以帮助我们更方便地管理代码库,确保不同用户或团队对应的路径有相应的权限。
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(Subversion)是一个版本控制系统,可以管理和跟踪文
件和目录的修改历史。
它可以帮助团队协同开发,同时提供了版本控制、分支管理、冲突解决和协同开发等功能。
首先,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. 分支命名规范:分支命名应具备一定的可读性,可以采用功能模块的名称或者相关的任务、需求编号等。
Win7 系统搭建SVN 服务端和客户端图文使用方法1、安装好VisualSV N Server后,运行VisualSVN Server Manger,打开服务器的Visual SVN 界面:2、创建仓库(reposi tory)第一种方式:按照上图,创建新的代码库,在下图所示的文本框中输入代码名称:上图中选择“e mptyrepost ory”,则在代码库只创建空的代码库Sta rtKit,选下面的“singl e-projec t”则在代码库S t artK it下面会创建tru nk、branch es、tags三个子目录;3种仓库默认推荐权限设置(Nobody…不允许任何人访问All Subver sionusers…所有svn用户都可以Custom ize permis sions自定义权限允许,这里下面有个按钮,我们可以过会继续设置,当然你也可以在这里设置,然后点cre ate创建)这里有个Re posit ory URL这个地址就是客户端获取服务器代码的地址,你可以先记下来,也可以通过右击仓库名可以获得。
前面的WIN-TV..什么的是你计算机的名字,客户端都是服务器的ip地址就行了这就是标准的b ranc hes,tags,trunk服务器版本我们现在右击整个仓库,就是MyBl og项目,我们现在来创建一个ad min管理员,用户名adm in,密码admi n,你可以在Us ers查找到他,可直接修改密码点击“OK”创建完代码库后,没有任何内容在里面。
我会在这个教程的第二部分说明如何迁入源代码。
下面,我们开始安全性设置,在左侧的Us ers上点击右键:输入上面的信息,点击OK,我们就创建一个用户了。
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日。
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下的权限分配修订记录日期修订版本修改章节修改描述作者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]存储用户权限信息。
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 (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权限的关键点,然后逐步尝试,这样的话效果会更好,下面就是我的实际操作,分享给大家,也给自己做个总结。
备注:本次测试的服务器是用的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的详细配置及使用一、配置文件的使用本文将详细介绍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服务器搭建搭建后根据权限需求不同可以设定不同目录的访问权限。
第一步,安装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的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⽬录树中是可以看到有权限的⼦⽬录的,但是看不到⽗⽬录的其他⼦⽬录。
关键词: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)系统,这种系统经过特定的精巧设计来管理源代码,有许多关于软件开发的特性—本身理解编程语言、或者提供构建程序的工具。