当前位置:首页 > 技术文章 > svn > authz.conf 的其他注意点
authz.conf 的其他注意点
文章来源:本站原创  浏览次数:350  发布日期:2013-02-05

1.父目录的 r 权限,对子目录 w 权限的影响

方便那些想在一个代码库存放多个相互独立的项目的管理员,来分配权限了。比如说给一公司建立一个大的代码库用于存放所有员工日志,叫做 diary,而arm事业部只是其中一个部门,则可以这样做:

[diary:/]

@g_chief_manager= rw

[diary:/arm]

@g_arm_manager= rw

@g_arm =r

这样,对于所有arm事业部的人员来说,就可以将svn://192.168.0.1/diary/arm 这个URL当作根目录来进行日常操作,而完全不管它其实只是一个子目录,并且当有少数好奇心比较强的人想试着 checkout 一下 svn://192.168.0.1/diary 的时候,马上就会得到一个警告“Accessdenied

2.默认权限

如果说我对某个目录不设置任何权限,会怎样?马上动手做个试验,将:

[diary:/]

@g_chief_manager= rw

改成:

[diary:/]

#@g_chief_manager = rw

这样就相当于什么都没有设置。此时是禁止任何访问。也就是说,如果你想要让某人访问某目录,你一定要显式指明这一点。

3.只读权限带来的一个小副作用

若设置了:

[arm:/diary]

* = r

Subversion 会认为,任何人都不允许改动diary 目录,包括删除、改名,和新增

也就是说,如果你在项目初期创建目录时候,一不小心写错目录名称,比如因拼写错误写成 dairy,以后除非你改动 authz.conf 里面的这行设置,否则无法利用 svn mv 命令将错误的目录更正

4.   anon-access 属性对目录权限的影响

你想将你的代码库开放给所有人访问,于是你就开放了匿名访问权限,在 svnserve.conf 文件中添加一行: anon-access=read 。可是对于部分目录,你又不希望别人看到,于是针对那些特别目录,你在 authz.conf 里面进行配置,添加了授权访问的人,并添加了 * = 标记。你认为一切OK了,可是你缺发现,那个特别目录却无法访问了,总是提示 Not authorized to open root of edit operation 或者 未授权打开根进行编辑操作 。你再三检查你配置的用户名与密码,确认一切正确,还是无法解决问题。

原来,Subversion 有个小 bug ,当 anon-access=read 并且某个目录有被设置上 * = 标记,则会出现上述问题。这个 bug 在当前最新版本上(v1.4)还存在,也许在下一版本内可以被改正吧。

解决的办法是,在 svnserve.conf 中,将 anon-access 设置成 none


原文来自:authz.conf 的其他注意点 http://www.redyun.net/technology/34.html

红云案例Case