SVN的搭建(权限配置篇)
如要转载,请注明出处!
两个问题:
- 如何维护多个目录或者仓库
- 目录权限如何设置
=====================================================================
1、维护多个目录或仓库
- 方案一:分别创建两个仓库,配置两套设置
- 方案二:在同个目录下创建两个仓库,将passwd、authz提到根目录下,两个仓库的全局配置公用一套配置
- 方案三:只要一个仓库,但是在仓库下设置多个子目录
方案一不合适、方案二可取、方案三可取。
但是当多个项目都比较大时推荐方案二,因为方案三所有项目都在一个仓库,如果需要仓库迁移,将比较麻烦。
2、创建多个仓库的权限配置
[project1:/] zhangsan = rw lisi = r * =
[project1:/tag]
wangwu = r [project2:/] lisi = rw zhangsan = r * =
3、创建一个仓库的权限配置
[/project1] zhangsan = rw lisi = r * =
[/project1/tag]
wangwu = r
[/project2] lisi = rw zhangsan = r * =
4、权限详解:继承和覆盖
权限的设置方式:
- 精准设置 指明A在目录B有什么权限(rw)
- 继承 如果目录没有设置权限,则继承最近的父目录的权限
- 覆盖 当前目录优先选择本目录设置的用户的权限,然后才考虑继承的权限
- 其他 * 表示除了指明的用户之外的所有人,无视父目录权限
案例:
目录结构:
|
|----doc
|
|-----pic
|-----bill
|----tag
|----trunk
|
|----moduleA
|----moduleB
|----test
角色设置:
boos:老板,查看所有,但是不会去动手写
manager:项目经理,只查看和编写doc文档、其他目录只看不写(令:pic目录也不能修改,不然美工的菇凉要发飙)
art:美工,只操作pic目录,其他目录没有任何权限
programmerA:程序员A,对moduleA、tag读写,pic只读,其他权限没有
programmerB:程序员B,对moduleB、tag读写,pic只读,其他权限没有
test:测试人员,test目录可以读写,tag只读,其他没有
权限配置:
#经理和老板可以读任何地方, 没有写的地方表示继承该权限
[/] boss = r manager = r
#经理读写 [/doc] manager = rw #boss可读,因为继承[/]的权限
#美工读写,程序员可读,老板可读,经理只读,其他人没权限 [/doc/pic] art = rw programmerA = r programmerB = r boss = r manager = r #这里用了覆盖,那么即使经理对doc可以rw,但是当前目录也只能r不能w * = #用了*,表示除了写的其他人都没有权限,所以如果不把boss = r 加上,那么boss不可读 [/tag] programmerA = rw programmerB = rw test = r [/test] test = rw [/trunk/moduleA] programmerA = rw [/trunk/moduleB] programmerB = rw