Subversion权限的深度挖掘

这个问题的发现,也很意外!也许也有人知道这个玩法?但多数人只有用到了一层组嵌套!或者只是知道这样能用,并不知道svn的权限层次判断关系。

上次很偶然,因为公司的svn代码目录结构非常的繁琐,然后各种人需要各种各样的权限。
多数人在控制权限的时候,可能分为严格权限和非严格权限,也就是 "*=","*=r" 或者可读写。那问题就出来了,当严格权限控制的时候,就会出现下面这种状况,(no date)了,这就是设置了"*="的原因。如下图
Subversion权限的深度挖掘 for  //kinggoo.com
而在数据段出现这种no date,就代表一些对此目录有读写权限也没用了,他们不能在上一级直接把此目录结构全部checkout下来。比如下面这种机构,你认为会出现什么情况

[/]
A = rw
B = rw
*=
[a:/AA]
A = rw
B = rw
*=
[a:/AA/BB]
A = rw
C = rw

会出现跟上图一样的no date,但有权限访问的人访问进去里面的确有数据。

比如,在"/AA/BB/"下面还有无数个用户"C"可以访问的目录,那这种情况会让用户"C"在checkout的时候无法直接"svn co ip/a"这样下载完整的结构和代码(这里的完整不是说代码下载不完全,而是无法下载),下载后你会发现只有不存在"no date"的代码文件夹才能被下载下来,其他的均不会下载。也就是说,用户"C"要去下载"AA"和"BB"目录内的内容,就必须去单独下载AA、BB。

这是为什么?

就是因为"*=",他是优先条件。svn的权限的优先级我猜想应该是这样的,先判断" * > username > 一层组 > 多维层组 "。

想必,细心的人已经注意到了“多层组”,我不知道叫多维层组对不对。反正暂时这样定义吧。

回顾一下,几个符号在svn的权限配置文件内的意义:

*:所有任何用户;

username:用户名;

@:代表组;

那多维层组是什么?

其实还是用"@"来表示,但需要组对组来赋值。所以我说有很多人都用组嵌套,但没去联想他们的权限问题。

为什么用@来控制,其实就是为了避免"no date"、还有配置内写独立姓名带来的不方便,主要是对权限控制好维护。

建议上面用户、组配置,下面是目录权限的框架。

避免使用"*="和直接填写"用户名 = rw"这种,也就是说要把你之前的权限级别提高两个等级,去掉"*="、直接用户名两个权限。

以前: * username @group

现在: @group 一个即可,但在配置区,要好好配置,组和组的权限控制比较绕,所以这时就考验你的大脑逻辑了。 我用的方法大概就是组套组,@,@@,@@@这种嵌套方法,大概意思如下:这些组之间是有用户交叉的

@group1=a,aa,aaa
@group2=b,bb,aaa
@group3=c,a,bb
@A=@group1,@group2
@B=@group1,@group3,c
@browse=@group1,@group2,@group3
[a:/] #三个组内用户均可以查看浏览,其他正常应该都使用给查看,而因为browse的级别最低,所以你可以通过多组来控制这个
@browse = r
[a:/A] #这里他会判断这里面的最低权限,而@browse的组级别低,所以会先判断group1和group2,如果包含着按此权限来控制不走browse权限,否则直接browse权限
@group1 = rw
@group2 = r
[a:/A/B] #这时候b,bb,aa是无法访问的,这时如果在图片界面上来看就是no date状态,而其他人(@B内但不包含@group2组内)的用户着不会显示no date
@group2 =
@B = rw
@browse =

这个我如果只靠写是的确写不出来的,所以只能让大家去看了,这里我上传一个我个人写的。里面可能有很多改的地方,所以大家不要纠结这个地方可能有会有我写错误的。你只要结果就可以了,自己多实践。虽然百度可能摆不出,google也捣鼓不出这个内容。

大概内容如下: (图里面有几个路径是无用的,仅配置文件的一部分)

Subversion权限的深度挖掘 for  //kinggoo.com

Subversion权限的深度挖掘 for  //kinggoo.com

Subversion权限的深度挖掘 for  //kinggoo.com

Subversion权限的深度挖掘 for  //kinggoo.com

这个权限说出来真的很烦人,但你要是用的好,还真舒服。不知道有几个人能看明白,反正如果是我没有去弄过,也还真想出这里面乱七八糟的关系!太繁琐了,一层套一层的。

- THE END -
版权声明:
转载原创文章请注明,文章出处://kinggoo.com
原文地址:https://kinggoo.com/app-svndepthexc.htm
发表评论?

0 条评论。

发表评论


此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据