Centos平台下SVN的权限管理

在项目组人数很少的时候,svn采取全开放策略,对项目安全没有什么影响。但是当人员越来越多,越来越复杂的时候,如何对项目源代码进行管理,如何控制项目的安全,尤其是如何对领导认为的核心技术进行保护,很快就提上了项目管理者的议程。

那么对于SVN来说,如何控制每个用户的权限,如何简化权限设置,这是本文想要研讨的话题。

 

在继续下面的话题之前,首先要谢谢“星辰的天空”写的文稿给予的帮助,里面写的东西已经很不错了,虽然整体感觉有点乱,但是也让我受益匪浅,对SVN权限管理有了比较深入的认识。这个是链接:http://www.cnblogs.com/xingchen/archive/2010/07/22/1782684.html 。

 

为了记录自己配置SVN权限的过程,以及在配置过程中发生的一些问题,当然也为了我博客的人气考量,特写下这篇博文。

 

每个SVN数据仓库下都包括三个配置文件:

  • svnserve.conf   服务器进程的配置文件
  • authz  用户验证配置文件
  • passwd  用户密码配置文件

SVNSERVE.CONF配置文件说明

这个文件是服务器主进程svnserve的配置文件,在SVN中修改配置后不用重启服务。

##匿名用户访问规则
anon-access = none / read / write
##验证用户访问规则
auth-access = none / read / write
##指定验证用户配置文件,权限管理主要操作文件,可以指定文件路径
authz-db = authz
##指定密码配置文件,可以指定文件路径
password-db = passwd
 

 

 authz配置文件说明

这个是SVN权限管理的配置文件,很重要,配置要慎重。在开始具体阐述如何配置各级权限前,我们需要明确一个重要的定义,那就是SVN只针对目录进行权限控制,无法控制到具体某个文件。

#数据仓库/代码库的名称及根目录
[edu:/]
#用户及用户的权限,若在用户后面跟空白,就表示该用户在当前项目中无权限
#若使用“*”,表示所有用户具有的基本权限,对于具体某个人来说,还要看他有没有定义自己的权限
hansy = rw  #读写权限
hansy =     #当前项目/分支无权限
* = r       #当前项目对所有人都开放读权限

如果需要对代码库下级目录指定具体权限,那么可以这样操作:

[edu:/cloud/brief]
hansy = r
caro = 

看起来是不是很简单呢,在了解SVN权限配置之前,我曾经以为有多复杂,多麻烦……

可能有人会提出,如果我人很多,人员流动也大,如果我每次都需要这样去配置,那不累死,我们可没有专门的系统管理人员/配置人员哦。事实上,SVN还提供“组”的权限配置,就像我们在所有系统里面都会有的角色这样的概念。
SVN的组配置如下:

#组的配置,为了方便区分,一般组名前面加"g_"
[groups]
# 任何想要查看文档的非本部门人士,如领导
g_vip = morson
# 项目经理
g_manager = michael
# 测试人员
g_test = scofield
# 开发人员
g_dev = lincon
# 一般员工
g_member = rory, linda, sarah
# 小秘,撰写文档
g_docs = sarah

我们开始对组进行权限控制:

[edu:/]  #代码库根目录权限控制
@g_manager = rw      #项目经理或管理者具有读写权限
@g_member =          #一般员工没有权限
@g_vip = r           #领导有读的权限
* =                  #非小组成员没有权限

#代码库源代码子目录
[edu:/src]
@g_dev = rw
@g_manager = r
@g_member = 
@g_vip = r
* =                  #非小组成员没有权限

#代码库文档目录
[edu:/doc]
@g_manager = rw      #项目经理或管理者具有读写权限
@g_member = r        #一般员工有读的权限
@g_vip = r           #领导有读的权限
@g_dev = r           #开发人员有读权限
@g_docs = rw         #文档管理员有读、写权限
* =                  #非小组成员没有权限

在每个目录的权限配置中,我们都特别标注了“* = ”,这主要是因为SVN中的一个规则,那就是”子目录“默认继承“父目录”的所有权限,而这个可能会导致在“父目录”中有访问权限的用户进入他不能访问的“子目录”。

 

passwd密码配置文件说明

这个文件是用户密码配置文件。在SVN中,可以通过编辑该文件对用户进行密码管理,也可以通过SVN命令来对密码进行管理。

下面是密码配置文件格式:

hansy = 87827192
sarah  = 87827239

在此需要注意的是,密码可以是明文,也可以是加密的,但是密码不能是中文。这个和配置方式有关系。

我们可以用SVN命令进行用户密码配置。

#使用htpasswd进行添加用户、密码以及MD5加密
#参数c表示创建一个新文件,如果有这个文件也会被新文件覆盖,注意哦,否则你就哭吧
#参数m表示对密码进行MD5加密
htpasswd -cm /opt/svn/edu/conf/authz

用htpasswd不能建立用户权限配置文件,所以你还需要到authz文件中进行权限配置才能正常使用。


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值