zoukankan      html  css  js  c++  java
  • SVN服务器详细权限控制

    下面是我配置SVN服务器的过程,现在把我所配置的方法,记录下来,以供其他有需要的朋友参考,需要改进的地方,请指教!

    一 环境

      操作系统:windows2003 server

      Apache:httpd-2.2.22-win32-x86-no_ssl.msi

           subversion: Setup-Subversion-1.7.8.msi

        TortoiseSVN: TortoiseSVN-1.7.11.23600-win32-svn-1.7.8.msi

    二 安装步骤

        1.安装Apache

        如果您已经拥有Apache的安装程序,那么你就可以双击安装程序开始安装。请确保你输入正确的服务器URL(如果你的服务器没有域名,你可以直接输入IP地址,邮箱可以随便写一个)。我建议你将Apache安装成 for all Users,on Port 80,as a service。注意:如果你已经有一个IIS或者其它的程序使用80端口,安装可能会失败。如果是这样,你可以到程序目录下的Apache Group"Apache2"conf目录中找到文件httpd.conf,将其中的Listen 80改成一个不用的端口,比如Listen 8888。然后重新运行这个安装程序,这次应该不会再有问题了。
          如何 测试Apache是否安装成功?
         你可以在你的浏览器中键入 http://loccalhost,如果显示“It works!”,那么你的Apache就安装成功了。

        2.安装Subversion并配置

       a,双击Subversion的安装程序来完成安装,安装完毕之后。我们进入subversion文件目录中(默认安装位置是:c:Program FilesSubversion),  在该目录中的bin文件夹中找到mod_dav_svn.so 和 mod_authz_svn.so,将它们拷贝到Apache的modules目录(通常为c:Program FilesApache GroupApache2modules)下。然后将Subversion/bin/ 目录下的 libdb44.dll、libeay32.dll、以及 ssleay32.dll文件 复制到 Apache目录 底下的 bin 目录下。

       b,打开Apache的配置文件httd.conf(通常为c:Program FilesApache GroupApache2confhttd.conf),修改以下内容:

    1. #LoadModule dav_fs_module modules/mod_dav_fs.so  
    2.   
    3. #LoadModule dav_module modules/mod_dav.so  
    4.   
    5. 修改为:   
    6.   
    7.   
    8. LoadModule dav_fs_module modules/mod_dav_fs.so  
    9.   
    10. LoadModule dav_module modules/mod_dav.so  
    #LoadModule dav_fs_module modules/mod_dav_fs.so
    
    #LoadModule dav_module modules/mod_dav.so
    
    修改为: 
    
    
    LoadModule dav_fs_module modules/mod_dav_fs.so
    
    LoadModule dav_module modules/mod_dav.so
    

     其实就是去掉这两行的注释。   

     然后在LoadModule节的最后添加以下两行:


    1. LoadModule dav_svn_module modules/mod_dav_svn.so  
    2. LoadModule authz_svn_module modules/mod_authz_svn.so  
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so

    *注意: 这两行的代码顺序不能错,以免带来不必要的麻烦。

    C, 然后在该文件最末进行相应的配置,以便客户端 TortoiseSVN和浏览器知道如何访问:

    (注意:记得在c:下建立文件夹(c:svn))

    1. <Location /svn>  
    2. DAV svn  
    3. SVNParentPath C:svn  
    4. AuthType Basic  
    5. AuthName "test"  
    6. AuthUserFile c:svnpasswd  
    7. AuthzSVNAccessFile C:svnsvnaccessfile  
    8. Require valid-user  
    9. </Location>  
    <Location /svn>
    DAV svn
    SVNParentPath C:svn
    AuthType Basic
    AuthName "test"
    AuthUserFile c:svnpasswd
    AuthzSVNAccessFile C:svnsvnaccessfile
    Require valid-user
    </Location>

    每一行的说明如下:
    1. <Location /svn>   #意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库  
    2. DAV svn     # 告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块  
    3. SVNParentPath C:svn   #告诉Subversion在目录C:svn下寻找版本库  
    4. AuthType Basic  #启用基本的验证,使用用户名/密码验证  
    5. AuthName "test"   # test为版本库  
    6. AuthUserFile c:svnpasswd   #passwd问密码和用户文件,用来验证用户的用户名及密码  
    7. AuthzSVNAccessFile C:svnsvnaccessfile    #权限控制文件,限定各个用户或组在版本库中目录的访问权限  
    8. Require valid-user  #限定用户只有输入正确的用户名及密码后才能访问这个路径  
    <Location /svn>   #意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库
    DAV svn     # 告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块
    SVNParentPath C:svn   #告诉Subversion在目录C:svn下寻找版本库
    AuthType Basic  #启用基本的验证,使用用户名/密码验证
    AuthName "test"   # test为版本库
    AuthUserFile c:svnpasswd   #passwd问密码和用户文件,用来验证用户的用户名及密码
    AuthzSVNAccessFile C:svnsvnaccessfile    #权限控制文件,限定各个用户或组在版本库中目录的访问权限
    Require valid-user  #限定用户只有输入正确的用户名及密码后才能访问这个路径
    
    

     d,下面,我们就来创建passwd文件,你打开命令行(DOS窗口),将当前目录切换到apache2目录(通常为c:Program FilesApache GroupApache2),然后打入以下命令以创建文件:

    1. binhtpasswd -c passwd <username>  
    2.   
    3. 比如: binhtpasswd -c c:svnpasswd admin  
    4. 命令分析:  
    5.  c:svnpasswd 表示会在:c:svn目录下创建一个passwd文件  
    6.  admin 表示用户名  
    binhtpasswd -c passwd <username>
    
    比如: binhtpasswd -c c:svnpasswd admin
    命令分析:
     c:svnpasswd 表示会在:c:svn目录下创建一个passwd文件
     admin 表示用户名

    然后输入两次密码,如下图所示:


       

    我们用记事本可以打开查看passwd这个文件
       
     
       可以看出,我们输入的密码,已经被加密了。但是【用户名】(admin)还是可以看到。
    然后我们再创建一个test用户,密码也为Test

    创建方法如下:

    1. binhtpasswd -b c:svnpasswd test test  
    binhtpasswd -b c:svnpasswd test test

    此命令执行Apahce的bin目录下的htpasswd.exe来创建一个密码文件,创建完成之后,重启Apache服务。

     e,权限控制文件创建

     在c:svn目录下创件svnaccessfile文件,然后打开进行配置,可以参照下面的示例:

    1. #组配置  组 = 用户名  
    2. [groups]          
    3. @admin = admin  
    4. @user = test  #test用户还需要按照上面d步骤来创建它和它的密码  
    5.   
    6. # 为所有库指定默认访问规则  
    7. # 所有人可以读  
    8. [/]  
    9. * = r  
    10.   
    11. # 为test版本库制定权限  
    12. #admin组拥有读写权限  
    13. #user组只有读取权限  
    14. [test:/svn/test]  
    15. @admin = rw  
    16. @user = r  
    #组配置  组 = 用户名
    [groups]        
    @admin = admin
    @user = test  #test用户还需要按照上面d步骤来创建它和它的密码
    
    # 为所有库指定默认访问规则
    # 所有人可以读
    [/]
    * = r
    
    # 为test版本库制定权限
    #admin组拥有读写权限
    #user组只有读取权限
    [test:/svn/test]
    @admin = rw
    @user = r

    三、测试
     
        (1)创建版本库
            
     
        新建一个文件夹--》鼠标右键点击---》选择【在此创建版本库】
        
     
         依次点击【创建目录结构】【启动版本库浏览器】
     
       (2)在d:新建一个目录叫 wwwroot,我们用来测试svn是否成功安装了
     
             向wwwroot里,复制些文件。然后将文件 导入 库中
     
     
    (3)打开IE浏览器,输入http://192.168.1.102/svn/test
        
       如果svn配置正确的话,应该可以看到上面的内容。
     
  • 相关阅读:
    常用知识点集合
    LeetCode 66 Plus One
    LeetCode 88 Merge Sorted Array
    LeetCode 27 Remove Element
    LeetCode 26 Remove Duplicates from Sorted Array
    LeetCode 448 Find All Numbers Disappeared in an Array
    LeetCode 219 Contains Duplicate II
    LeetCode 118 Pascal's Triangle
    LeetCode 119 Pascal's Triangle II
    LeetCode 1 Two Sum
  • 原文地址:https://www.cnblogs.com/nimorl/p/5088056.html
Copyright © 2011-2022 走看看