首先创建一个版本库后,会生成最初的目录结构和基本的配置文件,本文主要分析“authz”文件的内容;我们先抛开alias和groups不谈,将重点放在路径的权限配置上。

  一. 权限格式

  svn权限的基本规则如下:

[/path]
user1=r
user2=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等证实用户对该路径是有权限的。

  2.在配置文件中,对同一条路径多次配置,会合并所有配置内容,如果有对相同用户的权限配置,则最后的配置生效,例如:

[/trunk]
user1=rw
user2=rw
*=
[/trunk]
user1=r

  上面代码对路径/trunk配置了两次,最终效果等同于:

[/trunk]
user1=r
user2=rw
*=

  3.如果某路径的配置中包含*=r,那么所有用户的权限最低是r(即使有配置过用户权限为空,如:user=),如果有配置*=rw,则所有用户的权限为rw,例如:

[/trunk]
user1=
user2=r
user3=rw
*=r

效果等价于

[/trunk]
user1=r
user2=r
user3=rw
*=r

效果等价于

[/trunk]
user3=rw
*=r

  如果配置*=r,则权限是rw的用户不受影响

  总结第1和第3,‘*=’所配置的权限会覆盖本条路径中比它低级的权限配置(即*=r会覆盖用户的空权限配置,*=rw会覆盖r权限和空权限的配置),比它高级的权限则不受影响。

  4.如果一条路径的配置(不考虑多次配置)内容中没有*=(或者*=r,*=rw),则该路径会继承父目录的权限,例如:

[/trunk]
user1=r
*=
[/trunk/app]
user2=rw

  则路径/trunk/app最终的权限等同于:

[/trunk/app]
user1=r
user2=rw
*=

  5.如果一条路径和其父目录对一个用户有不同的权限配置,则访问路径自身的配置生效。其实这点和类的继承很像,子类会继承父类的属性,自己没有定义的属性就直接使用父类的,如果自己定义了,则会覆盖父类的属性。

http://www.cnblogs.com/dong93/p/4257277.html

SVN权限解析规则详解(转)的更多相关文章

  1. Windows下SVN权限配置过程详解

    本节讲解一下Windows下SVN权限配置说明,针对的是一个目录下多库的情况,下面是具体的介绍,希望通过本文的学习,你能够对SVN权限配置问题有更加深刻的认识. 1.本文档适用于对Subvesion的 ...

  2. Reface.NPI 方法名称解析规则详解

    在上次的文章中简单介绍了 Reface.NPI 中的功能. 本期,将对这方法名称解析规则进行详细的解释和说明, 以便开发者可以完整的使用 Reface.NPI 中的各种功能. 基本规则 方法名称以 I ...

  3. 53个Oracle语句优化规则详解(转)

    Oracle sql 性能优化调整  1. 选用适合的ORACLE优化器        ORACLE的优化器共有3种:a. RULE (基于规则)   b. COST (基于成本) c. CHOOSE ...

  4. 深入解析ThreadLocal 详解、实现原理、使用场景方法以及内存泄漏防范 多线程中篇(十七)

    简介 从名称看,ThreadLocal 也就是thread和local的组合,也就是一个thread有一个local的变量副本 ThreadLocal提供了线程的本地副本,也就是说每个线程将会拥有一个 ...

  5. MySQL权限授权认证详解

    MySQL权限授权认证详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL权限系统介绍1>.权限系统的作用是授予来自某个主机的某个用户可以查询.插入.修改.删除 ...

  6. Apache Rewrite 规则详解

    在开篇之前: 我想说这篇文章其实是我刚刚接触Rewrite的时候学习的文档,应属转载,但是在这里我不想写明原地址,原因是文章中大多数给出的配置命令经实验都是错误的.需要原文的可以在谷歌上搜索一下&qu ...

  7. css样式继承规则详解

    css样式继承规则详解 一.总结 一句话总结:继承而发生样式冲突时,最近祖先获胜(最近原则). 1.继承中哪些样式不会被继承? 多数边框类属性,比如象Padding(补白),Margin(边界),背景 ...

  8. iOS开发——开发实战篇&版本控制SVN和Git使用详解

     版本控制SVN和Git使用详解     公司的实际开发中,在天朝使用较多的还是SVN,因为SVN是集中式的,在天朝上班你们都懂的!     -----------------svn--------- ...

  9. Nginx 常用全局变量 及Rewrite规则详解

    每次都很容易忘记Nginx的变量,下面列出来了一些常用 $remote_addr //获取客户端ip $binary_remote_addr //客户端ip(二进制) $remote_port //客 ...

随机推荐

  1. HTML5实现IP Camera网页输出

    HTML5实现IP Camera网页输出 这两天做OA项目.有一个要通过IP Camera将视频流输出到浏览器端的模块.尽管如今买到的摄像头都会提供浏览器和client的实现,可是一般来说都是仅仅支持 ...

  2. Android动态设定GridView的高度,固定column,实现高度自适应

    动态设定GridView的高度,固定column,根据gridview中的item个数设定高度: 调用以下方法: public static void setListViewHeightBasedOn ...

  3. Java中的异常详解

    一.异常定义 阻止当前方法或作用域继续执行的问题,称为异常 二.异常分析      所有不正常类都继承Throwable类,这个类主要有两个子类Error类和Exception类.Error指系统错误 ...

  4. Handler.removeMessages的作用,有时候为什么一定要先remove一下呢

    removeMessages会将handler对应message queue里的消息清空,如果带了int参数则是对应的消息清空.队列里面没有消息则handler会不工作,但不表示handler会停止. ...

  5. DNS与网站优化

    点就出现了这样的问题,导致了几小时的访问失败,所以选择优秀的DNS服务器势必关系网站发展的生死存亡.本文做以下分析.     选择良好的DNS服务器要从选择域名注册商说起,在注册域名时多数人看中的仅仅 ...

  6. CEOI2014 day1 task3 Question

    题目 传送门. 算法 以下描述都举这个例子:\(x\)是\(11\),\(y\)是\(5\). 算法1 把\(x\)和\(y\)化成二进制,最多\(10\)位,那么\(x=1011_2\),\(y=0 ...

  7. J2EE应用服务器计数器

    常用的J2EE应用服务器包括Weblogic.WebSphere和Tomcat等,以下是以WebLogic为例给出的计数器. 类别 计数器名称 计数器描述 JVM Heap Size JVM堆大小,该 ...

  8. dfs-hdu-4620-Fruit Ninja Extreme

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4620 题目大意: 切水果.给n刀,每刀的时间,每刀切的水果的种类.求能切的最多的刀数,使得每相邻的两 ...

  9. SAP 金税接口介绍

    一.金税发票与SAP系统发票的税额差异分析 1.1 金税系统中的税额说明 国内企业销售产品给国内客户时,正常产品须要缴纳17%的增值税,而金税(Golden Tax)系统就是用来出具纸面的增值税发票的 ...

  10. premake Ubuntu下的安装

    premake是个跨平台的编译工具,先看看在Ubuntu下怎么安装. 首先下载,在/usr目录下: sudo wget -O premake-4.4-beta4-linux.tar.gz http:/ ...