一个SVN管理多个资料库时的用户权限配置

合集下载

SVN同时管理多个项目版本库

SVN同时管理多个项目版本库

SVN同时管理多个项目版本库├─SVN-CM├─conf├─dav├─db├─hooks├─locks├─SVNProject1│├─conf│├─dav│├─db│├─hooks│└─locks├─SVNProject2│├─conf│├─dav│├─db│├─hooks│└─locks1.安装SVN服务器软件路径: C:\Program Files\Subversion)2.在D盘创建svn根目录D:\SVN-CM命令:cd “C:\Program Files\Subversion\bin”->回车->svnadmin create D:\SVN-CM3. 在D:\SVN-CM下创建SVNProject1、SVNProject2两个SVN项目版本库;命令:svnadmin create D:\SVN-CM\SVNProject1svnadmin create D:\SVN-CM\SVNProject24.为便于配置管理,将所有版本库的“账号密码”和“登陆用户权限”等控制文件指定为同一个配置文件,步骤如下:A、从D:\SVN-CM\conf文件夹下将初始的passwd(账号密码)、authz(用户权限)文件剪切到D:\SVN-CM目录下;B、修改D:\SVN-CM下的每个项目版本库的\conf\svnserve.conf(访问控制文件),SVNProject1版本库修改D:\SVN-CM\SVNProject1\conf\svnserve.confSVNProject2版本库修改D:\SVN-CM\SVNProject2\conf\svnserve.conf修改内容如下:默认#anon-access = read 去掉首字符“#”,none表示不允许匿名访问默认#auth-access = write去掉首字符“#”默认# password-db = passwd改为password-db = ../../passwd,指向D:\SVN-CM\passwd;默认# authz-db = authz改为:authz-db = ../../authz,指向D:\SVN-CM\authz;(如果有N个版本库则重复N次这样的操作)5. D:\SVN-CM\passwd文件内容的修改:[左为用户名、右为密码](用户名、密码可根据自己的需要而定)user1 = user1123user2 = user2123user3 = user3123user4 = user4123user5 = user5123user6= user61236. D:\SVN-CM\authz文件内容修改:[groups]# harry_and_sally = harry,sallysvnproject1=user1,user2,user3,user4,user5,user6svnproject2=user1,user2,user3…………[/]* = rroot = rw# 指定所有的版本库默认只读,root可读写[SVNProject1:/]@ svnproject1 = rw[SVNProject2:/]@ svnproject2 = rw7.启动一次SVN-CM,即可启动所有svn项目版本库命令:cd “C:\Program Files\Subversion\bin”svnserve -d -r D:\SVN-CM# 注意启动命令中的路径盘符必须是大写8.安装SVN客户端安装SVN客户端工具,目前使用 TortoiseSVN-1.4.6.11647-win32-svn-1.4.6.msi。

visualSVN_server权限配置使用说明

visualSVN_server权限配置使用说明

VisualSVN server使用配置说明一、VisualSVN server的配置简介VisualSVN Server适用于你的团队在Windows平台上使用,可以用来安装、配置和管理Subversion Server,其中包括了Subversion和一个管理控制台。

你可以使用Subversion client 连接到VisualSVN Server ,也可以用浏览器来快速浏览内容. 而且它可以帮助你将Subversion整合进Visual Studio.其官网下载地址:/server二、VisualSVN server的安装1、双击下载好的安装软件,出现下图点击上图Next,进入下图所示:点击复选框,点击Next,进入下图:设置如上图所示,进入下图:这里要求你填入VisualSVN Server的安装位置,以及选择服务器端口和连接协议,,在大多数情况下可以使用默认值。

点击Next完成VisualSVN server的安装。

三、V isualSVN server的使用3.1 管理控制台VisualSVN Server 提供了一个简单和直观的标准MMC snap-in管理控制台。

你可以通过“开始菜单→所有程序”或者通过标准MMC来访问它。

通过管理控制台,你可以很方便地创建新版本库或浏览已经存在的库。

同样,你可以管理对版本库的访问权限。

3.2 创建版本库可通过右键Repositories→Create New Repositories来创建,当创建一个新的版本库时,VisualSVN Server可以自动地创建默认的版本库结构(如:trunk、branches、tags文件夹)在创建之后,你需要设置版本库的访问权限,使版本库可以通过web浏览器(网址在下图右上部的灰色工具栏获取)或者各种Subversion客户端访问(访问方式参考各客户端的使用方法)。

3.3 创建用户选中Users,选择Create User右键菜单命令。

配置管理-SVN权限详解

配置管理-SVN权限详解

配置管理-SVN权限详解
转载⾃:
VisualSvn的权限类型分为4种:
1. Inherit from parent(Read/Write):权限和⽗节点的权限相同,左右的⼦节点默认权限;
2. No Access:没有任何权限,⽤户⽆法将⽂件下载到本地;
3. Read Only:只读,⽤户只能从服务器将⽂件下载到本地,⽆法将修改提交到服务器;
4. Read / Write:读写,⽤户可以从本地将修改提交到服务器。

权限设置问题说明:
l⽤户U在组G1和组G2中都有设置,同时对于同⼀个项⽬,G1和G2被安排的权限是不同的,此时⽤户U的权限是取2组中权限的较⼤值。

权限⼤⼩如下: Read / Write > Write Only > Read Only > No Access
⽤户U在组G1和组G2中都有设置,同时G1对⽗节点有权限设置,G2对⼦节点也有权限设置,但是设置的不同,这时U对⼦节点的操作的权限是根据G2的设置,⽽不管权限值的⼤⼩。

⽤户U在组G1和组G2中都有设置,G1和G2对⽗节点的权限设置是Ga和Gb,Ga>Gb那么U对⽗节点的操作权限是Ga,⽽如果G2⼜对⽗节点下的⼀个⼦节点⼜设置了权限Gb(看似多余的操作)此时U对⼦节点的操作权限即是Gb(如果不设置则仍是Ga)。

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权限详解
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权限设置

svn权限设置

svn权限设置大多数情况下在设置SVN时会设置一个群,并社区权限从svn根目录起开始有读写的权限。

但在设置多群的情况下需要注意一下权限的问题例如:一个svn库根目录下有两个文件夹FolderA和FolderB。

设置两个群GroupA和GroupB,GroupA从根目录起有读写的权限(对FolderA 和FolderB有读写权限),GroupB只对FolderB有只读权限。

设置如下1.创建指定用户在passwd文件中创建指定用户Properties代码1.[users]er1=user1er2=user2er3=user3er4=user4[users]user1=user1user2=user2user3=user3user4=user42.创建群在authz文件中创建群找到[groups]标签在下放创建GroupA和GroupB两个群,并将用户添加到群中Properties代码1.[groups]2.GroupA=user1,user23.GroupB=user3,user4[groups]GroupA=user1,user2GroupB=user3,user43.设置群的权限在authz文件中设置权限语法格式:Properties代码1.[<目录>]2.@<群名称>=<权限字母>[<目录>]@<群名称>=<权限字母>设置GroupA权限Properties代码1.[/]2.@GroupA=rw[/]@GroupA=rw“[/]”的意思是可看到的范围,从svn库的根目录下任何文件夹以及其内的文件都可以访问“@GroupA=rw”的意思是GroupA群对根目录下全部文件夹和文件拥有读写的全,“r”代表读,“w”代表写设置GroupB权限Properties代码1.[/FolderB]2.@GroupB=r[/FolderB]@GroupB=r此处就不多解释了4.其他设置此时还不能算真正结束设置,在用svn客户端访问某个文件的历史记录时会出现以下信息:svn:Item is not readable这会导致无法查看文件的历史记录,此时需要去svnserve.conf文件中修改一下。

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”,就可以了;。

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

SVN管理规范一、引言版本控制是软件开辟过程中非常重要的一环,它能够匡助团队有效管理代码的变更,协作开辟,以及追踪和修复问题。

SVN(Subversion)是一种流行的版本控制系统,本文将介绍SVN管理规范,以确保团队在开辟过程中能够高效地使用SVN。

二、SVN仓库结构1. 仓库创建:在SVN服务器上创建一个新的仓库,命名规范为项目名称或者团队名称。

2. 仓库结构:SVN仓库应该按照项目的逻辑结构进行组织,普通可以分为三个主要目录:- trunk:主干目录,用于存放主要开辟代码,是最新的稳定版本。

- branches:分支目录,用于存放各个功能模块的开辟分支,每一个分支应该有一个明确的目的和名称。

- tags:标签目录,用于存放发布版本的快照,普通不允许修改。

三、提交规范1. 提交频率:开辟人员应该时常提交待码,以避免代码丢失或者冲突。

推荐每天至少提交一次。

2. 提交注释:每次提交都应该附带有明确的注释,描述本次提交的目的和变更内容。

注释应该简洁明了,不要包含无关信息。

3. 提交单元:每次提交应该只包含一个逻辑单元的修改,避免将多个功能或者问题的修改混合在一起。

四、分支管理1. 分支创建:当需要开辟新功能或者修复问题时,应该从主干目录创建一个新的分支。

分支的命名应该具有描述性,能够清晰表达其目的和内容。

2. 分支合并:当分支开辟完成或者修复完成后,应该将其合并回主干目录。

合并前应该进行必要的代码审查和测试,确保合并的代码是稳定和可靠的。

3. 分支删除:当分支的目的已经达到或者再也不需要时,应该及时删除分支,以避免仓库的混乱和不必要的复杂性。

五、冲突解决1. 更新代码:在开始工作之前,应该先更新本地代码,确保与仓库中的最新版本保持一致。

2. 冲突处理:当浮现代码冲突时,应该及时解决。

可以使用SVN提供的合并工具或者第三方工具来解决冲突,解决冲突后应该进行必要的测试,确保代码的正确性。

六、权限管理1. 用户权限: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

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的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 权限文件authz配置

svn 权限文件authz配置

权限文件authz配置
权限文件authz在apche与svnserve服务器上的配置不同,单版本库和多版本库上的配置也有不同。

1.配置authz时,如果svnserve的启动参数-r 所指定的目录为直接指定到版本库(称之为单库svnserve方式)
例如:svnserve -d -r d:\svn\project1
在这种情况下,一个svnserve只能为一个版本库工作。

authz如果配置成下面这样就是错的:
应该配置成
因为[project1:/]表示project1的根目录,而按上面的启动参数,是没有库的概念的。

使用类似这样的URL:svn://192.168.0.1/ 即可访问project1
2.-r指定到版本库的上级目录(称之为多库svnserve方式)
如果使用以下命令启动svnserve:
这种情况,一个svnserve可以为多个版本库工作,这是如果想限制指定库的指定目录,就应该指定具体的库,想像这样:
如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录使用类似这样的URL:svn://192.168.0.1/project1 即可访问project1
这样的URL:svn://192.168.0.1/project2 即可访问project2
3.对中文目录进行权限控制时,应该将权限文件authz改为utf-8格式。

SVN权限设置

SVN权限设置

Subversion之路实现精细的目录访问权限控制作者: 郑新星联系: zhengxinxing gmail com状态:草稿,编写中版本:0.4修订:The.Road.to.Subversion_authz.txt 148 2006-07-07 10:47:18Z michael版权:作者保留对本文的一切修改、发布等权力。

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

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

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

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

目录1 to-do list2 前言3 实战3.1 背景假设3.2 建立代码库3.3 编辑代码库基础配置文件3.4 管理用户帐号3.5 建立目录访问权限控制文件3.6 测试4 深入4.1 svnserve.conf4.2 authz.conf 之用户分组4.3 authz.conf 之项目根目录4.4 authz.conf 之项目子目录4.5 authz.conf 的其他注意点5 改进5.1 对中文目录的支持6 参考文献1 to-do list描述初始建立代码库时候,导入的细节区别关于passwd.conf 文件明文密码的问题,及其处理办法有关使用apache代替svnserve.exe做服务器,从而实现非明文密码,以及实现SSL的问题有关使用apache之后,部门经理想要通过web查看日志的问题2 前言在实际的使用中,由于项目的目录本身就是作为版本库的一个部分被svn所收管,所以我们无法利用服务器操作系统的访问权限,来实现项目目录的访问控制。

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

SVN设置每个人访问不同文件的方法linux操作系统-电脑资料

SVN设置每个人访问不同文件的方法linux操作系统-电脑资料

SVN设置每个人访问不同文件的方法linux操作系统-电脑资

如果我把这个问题发出去可能会有人说svn权限控制是到文件夹级别的,不是到文件级别,因此你需要首先将文件夹结构设置好,每个人要看的文件分别放在不同的文件夹中,比如根目录是aaa,下面每个人对应的目录分别是a1、a2、a3、a4了,那么我们要如何解决此问题呢,其实可以使用目录形式即可解决,具体如下
修改配置文件svnserve.conf
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#认证用户的权限,可以是read,write,none,默认为write
auth-access = write
#密码数据库的路径,去掉前面的#
password-db = passwd
#用户操作权限#
authz-db = authz
修改配置文件passwd
[users]
user = passwod
user1 = password1
修改配置文件authz
[test1:/]
user = rw
[test1:/doc]
user1 = rw。

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

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

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

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

svnserve下的配置文件
因为本文是以svnserve为例的,所以先介绍一下版本库目录的结构:
D:\SVNROOT\PROJECT1
├─conf
├─dav
├─db
│ ├─revprops
│ ├─revs
│ └─transactions
├─hooks
└─locks
其中conf下面有三个文件:
authz
passwd
svnserve.conf
其中的“svnserve.conf”是这个版本库的配置文件,当使用svnserve时,这个配置文件决定了使用什么认证和授权文件:
password-db = passwd
authz-db = authz
上面的配置说明使用“svnserve.conf”同目录的passwd和authz,其中的password-db指定了用户密码文件,authz-db是我们的授权文件,也就是我们本文主要介绍的文件。

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

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

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

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

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

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

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

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

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

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

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

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

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

对应的组及组的用户:
p1_group_a:p1_a1
p1_group_d:p1_d1
p1_group_t:p1_t1
p2_group_a:p2_a1
p2_group_d:p2_d1
p2_group_t:p2_t1
修改D:\SVNROOT\passwd文件
前面已经说过了,用户和密码文件应该是在D:\SVNROOT\passwd,所以我们为每一位用户设置权限,文件内容如下:
[users]
p1_a1 = p1_a1
p1_d1 = p1_d1
p1_t1 = p1_t1
p2_a1 = p2_a1
p2_d1 = p2_d1
p2_t1 = p2_t1
为了便于验证,所有密码和用户名一致。

配置授权,修改D:\SVNROOT\authz
[groups]
# 定义组信息
p1_group_a = p1_a1
p1_group_d = p1_d1
p1_group_t = p1_t1
p2_group_a = p2_a1
p2_group_d = p2_d1
p2_group_t = p2_t1
[/]
# 指定所有的版本库默认只读,root可读写
* = r
root = rw
[project1:/]
# 指定对版本库project1根目录的权限
@p1_group_a = rw
@p1_group_d = rw
@p1_group_t = r
[project1:/trunk/admin]
# 指定对版本库project1的/trunk/admin根目录的权限,
# p1_group_a读写,p1_group_d和p1_group_t没有任何权限。

@p1_group_a = rw
@p1_group_d =
@p1_group_t = Svn中文网
[project2:/]
# 指定对版本库project2根目录的权限
@p2_group_a = rw
@p2_group_d = rw
@p2_group_t = r
[project2:/trunk/admin]
# 指定对版本库project2的/trunk/admin根目录的权限
# p2_group_a读写,p2_group_d和p2_group_t没有任何权限。

@p2_group_a = rw
@p2_group_d =
@p2_group_t =
经过以上设置以后,你会发现当使用用户“p1_d1”,检出project1的trunk时,目录是空的,好像admin目录根本不存在一样,当使用p1_d1用户浏览版本库时,能够看到admin目录,但是其中的内容却无法看到。

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

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

相关文档
最新文档