一个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时,需要输入正确的用户名和密码来验证身份。

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

  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”,然后保存。

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

相关文档
最新文档