一、问题描述
今天需要细化设置SVN的权限,结果同事使用分配的权限更新自己的文件时出现了问题(截图如下):
二、探索解决方法
1、初步分析
在网上查找资料,分析svnserve.conf文件,网上有资料说将“anon-access = read”,修改为“anon-access = none”。查看自己的svnserve.conf文件,其实我已经设置为“anon-access = none”了。可依然不能更新。
2、深入思考
查看svnserve.conf文件附带的说明:
### These options control access to the repository for unauthenticated
### and authenticated users. Valid values are "write", "read",
### and "none". The sample settings below are the defaults.
# anon-access = read
# auth-access = write
原来是这样的:
anon-access = read-->表示匿名访问的权限,为只读。
auth-access = write -->表示认证用户访问的权限,为可写。
再查看自己的authz文件,发现虽然给同事的帐号分配了指定目录的读写权限,但没有给该帐号设置那个指定目录的上级目录的权限,这样,默认情况下该账号就没有访问指定目录的上级目录的权限,所以这样设置的权限其实是冲突的。
3、解决方法
其实解决上述问题,有两种方法:
(1) 将默认的访问权限设置为只读(即anon-access = read),这样所有的用户都能访问该配置库目录,缺点是配置库的安全性降低,所以选择第二种方法。
(2) 给该帐号分配只读权限,使之对 指定目录的上级目录拥有只读权限。
三、总结
使用上述第二种方法,问题得到解决。在使用SVN过程中发现问题时,还是要自己查看SVN所带文件的说明内容,会有很大帮助,同时也给我们这些开发人员一个提示,在我们的开发过程中,写注释或说明文件一定要详细、周全。