Centos平台下SVN的权限管理

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

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

SVNSERVE.CONF配置文件说明

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

[html]  view plain copy
  1. ##匿名用户访问规则  
  2. anon-access = none / read / write  
  3. ##验证用户访问规则  
  4. auth-access = none / read / write  
  5. ##指定验证用户配置文件,权限管理主要操作文件,可以指定文件路径  
  6. authz-db = authz  
  7. ##指定密码配置文件,可以指定文件路径  
  8. password-db = passwd  
  9.    

 

 authz配置文件说明

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

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

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

[html]  view plain copy
  1. [edu:/cloud/brief]  
  2. hansy = r  
  3. caro =   

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

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

[html]  view plain copy
  1. #组的配置,为了方便区分,一般组名前面加"g_"  
  2. [groups]  
  3. # 任何想要查看文档的非本部门人士,如领导  
  4. g_vip = morson  
  5. # 项目经理  
  6. g_manager = michael  
  7. # 测试人员  
  8. g_test = scofield  
  9. # 开发人员  
  10. g_dev = lincon  
  11. # 一般员工  
  12. g_member = rory, linda, sarah  
  13. # 小秘,撰写文档  
  14. g_docs = sarah  

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

[html]  view plain copy
  1. [edu:/]  #代码库根目录权限控制  
  2. @g_manager = rw      #项目经理或管理者具有读写权限  
  3. @g_member =          #一般员工没有权限  
  4. @g_vip = r           #领导有读的权限  
  5. * =                  #非小组成员没有权限  
  6.   
  7. #代码库源代码子目录  
  8. [edu:/src]  
  9. @g_dev = rw  
  10. @g_manager = r  
  11. @g_member =   
  12. @g_vip = r  
  13. * =                  #非小组成员没有权限  
  14.   
  15. #代码库文档目录  
  16. [edu:/doc]  
  17. @g_manager = rw      #项目经理或管理者具有读写权限  
  18. @g_member = r        #一般员工有读的权限  
  19. @g_vip = r           #领导有读的权限  
  20. @g_dev = r           #开发人员有读权限  
  21. @g_docs = rw         #文档管理员有读、写权限  
  22. * =                  #非小组成员没有权限  

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

 

passwd密码配置文件说明

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

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

[html]  view plain copy
  1. hansy = 87827192  
  2. sarah  = 87827239  

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

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

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

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

你可能感兴趣的:(Centos平台下SVN的权限管理)