SVN权限解析规则详解(转)
首先创建一个版本库后,会生成最初的目录结构和基本的配置文件,本文主要分析“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权限解析规则详解(转)的更多相关文章
- Windows下SVN权限配置过程详解
本节讲解一下Windows下SVN权限配置说明,针对的是一个目录下多库的情况,下面是具体的介绍,希望通过本文的学习,你能够对SVN权限配置问题有更加深刻的认识. 1.本文档适用于对Subvesion的 ...
- Reface.NPI 方法名称解析规则详解
在上次的文章中简单介绍了 Reface.NPI 中的功能. 本期,将对这方法名称解析规则进行详细的解释和说明, 以便开发者可以完整的使用 Reface.NPI 中的各种功能. 基本规则 方法名称以 I ...
- 53个Oracle语句优化规则详解(转)
Oracle sql 性能优化调整 1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种:a. RULE (基于规则) b. COST (基于成本) c. CHOOSE ...
- 深入解析ThreadLocal 详解、实现原理、使用场景方法以及内存泄漏防范 多线程中篇(十七)
简介 从名称看,ThreadLocal 也就是thread和local的组合,也就是一个thread有一个local的变量副本 ThreadLocal提供了线程的本地副本,也就是说每个线程将会拥有一个 ...
- MySQL权限授权认证详解
MySQL权限授权认证详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL权限系统介绍1>.权限系统的作用是授予来自某个主机的某个用户可以查询.插入.修改.删除 ...
- Apache Rewrite 规则详解
在开篇之前: 我想说这篇文章其实是我刚刚接触Rewrite的时候学习的文档,应属转载,但是在这里我不想写明原地址,原因是文章中大多数给出的配置命令经实验都是错误的.需要原文的可以在谷歌上搜索一下&qu ...
- css样式继承规则详解
css样式继承规则详解 一.总结 一句话总结:继承而发生样式冲突时,最近祖先获胜(最近原则). 1.继承中哪些样式不会被继承? 多数边框类属性,比如象Padding(补白),Margin(边界),背景 ...
- iOS开发——开发实战篇&版本控制SVN和Git使用详解
版本控制SVN和Git使用详解 公司的实际开发中,在天朝使用较多的还是SVN,因为SVN是集中式的,在天朝上班你们都懂的! -----------------svn--------- ...
- Nginx 常用全局变量 及Rewrite规则详解
每次都很容易忘记Nginx的变量,下面列出来了一些常用 $remote_addr //获取客户端ip $binary_remote_addr //客户端ip(二进制) $remote_port //客 ...
随机推荐
- in window js 未定义和undifined的区别
浏览器报错:未定义和undifined不是同一概念,前者是没有申明,后者是没有赋值. 1: <html> <body> <script> ...
- erlang 初体验
近期測试了一下 erlang的坑... 如不出意外.... 大家第一眼看到这语法... 心里第一句一定是"我擦.这TM都是啥!!!!!" 没有变量!!! 没有结构体!!! 没有循环 ...
- c# winform 弹出确认消息框判断是否删除?
if (MessageBox.Show("确认删除?", "此删除不可恢复", MessageBoxButtons.YesNo) == DialogResult ...
- ACM第二次比赛( C )
Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Description Vanya ...
- Java --CountDownLatch简介
CountDownLatch 1.类介绍 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待.用给定的计数 初始化 CountDownLatch.由于调用了 coun ...
- Python与开源GIS:在OGR中使用SQL语句进行查询
摘要: 属性选择与空间选择都可以看作是OGR内置的选择功能,这两种功能可以解决大部分实际中的问题.但是也有这种时候,就是进行查询时的条件比较复杂.针对这种情况,OGR也提供了更加灵活的解决方案:支持使 ...
- 关于UIText换行
话不多说,直接上代码 --代码是lua的,c++也一样 local text = ccui.Text:create("text can line wrap text can line wra ...
- Android之——Fragment生命周期(日志截图版)
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46867159
- ADO.NET 1创建连接、执行命令
一无参构造函数的形式: 创建连接.创建命令.执行命令: string connstr = @"server=.;database=TestDataBase;uid=sa;pwd=130988 ...
- 6个最佳的开源Python应用服务器
6个最佳的开源Python应用服务器 首先,你知道什么是应用服务器吗?应用服务器通常被描述为是存在于服务器中心架构中间层的一个软件框架. AD: 首先,你知道什么是应用服务器吗?应用服务器通常被描述为 ...