`
laotu5i0
  • 浏览: 143677 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Subversion权限配置的一些参考(纯svn和基于apache)

    博客分类:
  • svn
阅读更多

安全和权限

-          对于以svnserve -d启动的服务器,修改代码库目录/conf/svnserve.conf,主要步骤:(在配置文件中,变量前不要有空格。)

1)        对于svnserve.conf,注意[general]段,其中4项的主要含义:

Ø         anon-access 定义匿名用户的权限(writereadnone)。

Ø         auth-access 定义认证过用户的权限(writereadnone

Ø         password-db 定义用户密码列表文件名

Ø         realm 一般是版本库的uuid。如果有2个版本库的这个属性一样,那么password-db的值也必须一样。反之亦然。

2)        定义用户密码列表文件内容,格式:

[users]

    用户名=密码,注意这个是大小写敏感的。

3)        启动服务器,在提示用户输入安全信息时,缺省是用户的OS的登录名,此时直接提示输入密码。如果密码不对,则会提示输入用户名,然后是密码。

例子:

svnserve.conf

[general]

### 禁止匿名用户访问

 

anon-access = none

### 验证过的用户具有读写权限

 

auth-access = write

### 定义用户密码列表文件名文件名为

userlist.txt

 

 

password-db = userlist.txt

### 定义

realm

 

 

realm = My First Repository

用户密码列表文件名

userlist.txt

[users]

foxgem1=foxgem1

对于这种方式,无法定义对于代码库下具体目录的权限。如果有这个需要,那么可以采用与Apache2集成的方式解决。

-          对于与Apache2集成的服务器,修改httpd.conf,主要步骤:(需要在Apache2中配置mod_authz_svn,建议先安装Apache2,再安装Subversion。此处主要是利用Apache2对于目录的访问控制,可以从Apache2的手册中获得更多的信息。)

1)        使用htpasswd建立userlist。如果文件不存在,那么使用htpasswd -cm;文件存在,则使用htpasswd -m。其中c代表createm代表使用MD5加密口令。如:

   $ ### First time: use -c to create the file

   $ ### Use -m to use MD5 encryption of the password, which is more secure

   $ htpasswd -cm /etc/svn-auth-file harry

    New password: *****

    Re-type new password: *****

    Adding password for user harry

   $ htpasswd /etc/svn-auth-file -m sally

    New password: *******

    Re-type new password: *******

    Adding password for user sally

 

 

 

2)        httpd.conf中的<location>2种使用方式:

Ø         只允许指定用户

    <Location /svn>

       DAV svn

       SVNParentPath /usr/local/svn

      

AuthType Basic

 

 

       AuthName "Subversion repository"

 

 

 

       AuthUserFile /etc/svn-auth-file

 

 

 

       Require valid-user

 

 

 

    </Location>

Ø         对于指定操作之外的用户,应用权限认证

    <Location /svn>

       DAV svn

       SVNParentPath /usr/local/svn

      

AuthType Basic

 

 

       AuthName "Subversion repository"

 

 

 

       AuthUserFile /path/to/users/file

 

 

 

       # 对于get操作之外,需要验证。

 

       <LimitExcept GET PROPFIND OPTIONS REPORT>

 

 

 

          Require valid-user

 

 

 

       </LimitExcept>

    </Location>

3)        以上2步建立了和svnserve -d相同的访问控制。如果要应用目录控制,那么:

a)         建立目录访问策略文件,文件格式与svnserve.conf的语法类似。对于每个要控制的路径:

[repos-name:path][path]

username= r,rw

如果没有提及用户,那么就没权限;如果指明用户,但是等号右边什么也不写,即是显式的拒绝。如果左边使用*,则表示所有的用户。对于使用了SVNParentPath,需要指明repos-name。否则,可以省略。在文件中还可以使用[groups]建立组,例子:

[groups]

calc-developers = harry, sally, joe

paint-developers = frank, sally, jane

everyone = harry, sally, joe, frank, sally, jane

 

 

[calc:/projects/calc]

###使用时注意,组名前有@

@calc-developers = rw

[paint:/projects/paint]

@paint-developers = rw

jane = r

 

 

 

b)        <location>中使用AuthzSVNAccessFile,典型的3种配置方式:

方式一:允许匿名存取

<Location /repos>

       DAV svn

       SVNParentPath /usr/local/svn

      

AuthzSVNAccessFile /path/to/access/file

 

 

    </Location>

方式二:不允许匿名存储

 

    <Location /repos>

       DAV svn

       SVNParentPath /usr/local/svn

      

AuthzSVNAccessFile /path/to/access/file

 

 

       # 只有认证用户可以存取

 

       Require valid-user

 

 

 

       # 认证方式

 

       AuthType Basic

 

 

 

       AuthName "Subversion repository"

 

 

 

       AuthUserFile /path/to/users/file

 

 

 

    </Location>

方式三:方式12的混合模式

 

<Location /repos>

       DAV svn

       SVNParentPath /usr/local/svn

      

AuthzSVNAccessFile /path/to/access/file

 

 

       # 先尝试匿名,如果不行再尝试认证用户

 

       Satisfy Any

 

 

 

       Require valid-user

 

 

 

       # 认证方式

 

       AuthType Basic

 

 

 

       AuthName "Subversion repository"

 

 

 

       AuthUserFile /path/to/users/file

 

 

 

    </Location>

例子:

httpd.conf

 

 

 

<Location /repo>

    DAV svn

    svnpath D:/studycases/subversion/repository

    AuthzSVNAccessFile D:/studycases/subversion/pathright.txt

    Satisfy Any

    Require valid-user

    AuthType Basic

    AuthName "Subversion repository"

    AuthUserFile D:/studycases/subversion/svnuser.txt

</Location>

用户密码列表文件名

svnuser.txt

foxgem:$apr1$kY/…..$rXDeLPlm9b0uacF7zM.dl.

(注意这是使用htpasswd产生的)

 

目录访问策略文件

pathright.txt

 

[/project]

foxgem= r

[/test]

foxgem=rw

分享到:
评论

相关推荐

    Subversion 基于 Apache 使用时用户权限的管理.docx

    - 安装Apache服务器以及两个关键模块:`mod_dav_svn`(用于支持Subversion的DAV协议)和`mod_authz_svn`(用于权限管理)。 - 编辑Apache的配置文件`httpd.conf`,加载这两个模块。添加如下行: ``` LoadModule ...

    如何配置基于apache且用svn、http、https访问的SVN

    1. **安装mod_dav_svn和mod_authz_svn**:这两个模块允许Apache与SVN通信并进行权限管理。在Linux上,可以通过包管理器(如apt或yum)安装。在Windows上,它们通常包含在SVN安装包中。 2. **创建SVN仓库**:在...

    apache配置SVN,Subversion权限控制,win2008 FTP配置权限访问

    总之,Apache配置SVN和Subversion权限控制,以及Windows 2008上的FTP服务器配置,涉及到多个层面的技术集成。正确配置后,不仅可以实现代码仓库的高效管理,还能保障团队成员的安全协作。务必注意文件路径、用户权限...

    在windows下搭建基于apache的SVN环境.pdf

    这里指定了SVN仓库位于F:/svn/kettle-4.0-src目录,设置了基本的认证方式,定义了认证名和密码文件以及权限配置文件的位置,并规定了必须是有效用户才能访问。 6. 创建SVN用户和权限:使用htpasswd命令行工具创建...

    svn和apache的安装与配置

    通过以上步骤,我们可以在Windows环境下成功地安装和配置SVN及Apache服务器,实现一个基本的版本控制系统。这种配置不仅可以满足小型团队的需求,还能够为大型项目提供稳定的版本控制环境。随着项目的不断发展,还...

    apache+subversion配置说明 v1 8

    本配置说明主要针对Apache 2.2.29和Subversion 1.8.13版本进行安装和配置,以实现SVN仓库的跨版本库迁移,并保留提交日志。 首先,我们需要准备以下软件包: 1. Apache HTTP Server(httpd-2.2.29) 2. Subversion...

    windows下基于apache的svn安装教程

    在Windows环境下,基于Apache搭建SVN(Subversion)服务器是一个常见的选择,因为它提供了稳定且功能丰富的版本控制系统。以下是一份详细的教程,涵盖了所需软件、安装步骤以及集成过程。 ### 一、需要的软件 1. *...

    Apache-Subversion-1.14.2

    Apache Subversion(简称 SVN)是一个开源的版本控制系统,用于管理和跟踪文件和目录的变更。它允许团队成员协同工作,共享和追踪项目代码的不同版本。下面是一些关于 Apache Subversion 的要点: 版本控制:SVN ...

    Windows 下面 apache+SVN配置

    5. 创建权限配置文件authz,在SVN的conf目录下,定义不同用户和组的访问权限。 完成Apache配置后,需要设置SVN仓库。在D:\SVN下创建一个名为WWW的目录,然后在命令行中切换到SVN的BIN目录,运行`svnadmin create D:...

    再次奉献SVN+apache Server配置

    【描述】虽然描述为空,但我们可以推测博主可能分享了他在配置SVN与Apache服务器过程中的经验和心得,可能包括了一些常见问题的解决方案和最佳实践。 【标签】:“源码”和“工具”这两个标签表明了主题涉及的是与...

    基于Apache的SVN构建

    Apache提供了一个稳定且可高度配置的平台,可以方便地集成SVN,实现代码仓库的版本控制、权限管理和协作功能。 Subversion是一个开源的版本控制系统,用于管理文件和目录的变更历史。它允许团队成员协同工作,同时...

    Apache和Subversion集成安装与配置

    Apache和Subversion(通常简称为SVN)是两个在软件开发领域广泛应用的工具。Apache是一个开源的Web服务器,而Subversion则是一个版本控制系统,用于跟踪和管理代码的变化。这篇文章将深入探讨如何将这两个工具集成,...

    SVNManager配置详细说明文档

    在安装完成后,我们需要进行一些基本的配置和设置,以确保 SVNManager 的正确运行。这些配置和设置包括创建数据库、设置访问权限、配置 svnmanager 等方面的内容。 SVNManager 配置详细说明文档旨在提供一个详细的...

    apache+svnserver配置

    在开始Apache与Subversion(SVN)服务器的配置之前,确保已正确安装Apache Web服务器和Subversion。本指南将详细介绍如何在Windows环境下配置Apache与Subversion,以便通过Web方式访问版本控制系统。 **所需软件:*...

    搭建SVN + Apache 服务器

    关于用户和权限的具体配置,可以参考以下链接: - [配置用户和权限](http://www.cnblogs.com/eastson/p/6051269.html) - [SVN服务器部署](http://www.cnblogs.com/Sungeek/p/6905102.html) 以上步骤详细介绍了如何...

    ubuntu linux 配置svn+apache+ssl

    【概述】 ...以上就是Ubuntu环境中配置SVN+Apache+SSL的详细步骤,包括安装、配置、权限设置以及SSL安全连接的建立。通过这样的设置,你的团队可以安全地协作开发项目,同时确保代码仓库受到保护。

Global site tag (gtag.js) - Google Analytics