• 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配置正确的话,应该可以看到上面的内容。
     
  • 相关阅读:
    学习进度条
    软件工程期末总结
    实验四 主存空间的分配与回收
    学术诚信与道德
    《构建之法》第八、九、十章读后感
    实验三、进程调度模拟程序实验
    《构建之法》第六七章读后感
    Scrum团队成立3.0
    0428-项目再开发2.0
    作业调度模拟程序
  • 原文地址:https://www.cnblogs.com/nimorl/p/5088056.html
Copyright © 2020-2023  润新知