安全和权限
- 对于以svnserve -d启动的服务器,修改代码库目录/conf/svnserve.conf,主要步骤:(在配置文件中,变量前不要有空格。)
1) 对于svnserve.conf,注意[general]段,其中4项的主要含义:
Ø anon-access 定义匿名用户的权限(write,read,none)。
Ø auth-access 定义认证过用户的权限(write,read,none)
Ø 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代表create;m代表使用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>
方式三:方式1和2的混合模式
<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
|
分享到:
相关推荐
详细的apache配置SVN Subversion win2008 FTP服务器配置及多用户权限访问的配置过程。本人都配置过。完全没问题
Apache Subversion(简称 SVN)是一个开源的版本控制系统,用于管理和跟踪文件和目录的变更。它允许团队成员协同工作,共享和追踪项目代码的不同版本。下面是一些关于 Apache Subversion 的要点: 版本控制:SVN ...
4.4 配置用户和权限 11 4.4.1 版本库配置文件布局 11 4.4.2 配置文件说明 12 4.4.3 修改配置文件 14 4.5 运行独立服务器 16 4.5.1 守护模式 16 4.5.2 将svnserve安装为系统服务 16 5 Apache服务器安装配置 17 5.1 ...
完整的svn + apache配置文档 第一步,先检查是否安装了下面软件包 #rpm -q subversion httpd mod_dav_svn 如果没有请安装他们! 第二步,建立一个用户,用于管理SVN版本库 useradd -m -s /bin/bash svn 第...
mod_authz_svn 模块可以根据用户名和路径实现细粒度的权限控制,它对 Apache 服务器有效,在 Subversion 1.3 以上版本的 svnserve 中也实现了基于路径的授权。 一个可能的例子: [groups] admin = john, kate ...
服务器官网下载:http://subversion.apache.org/packages.html 客户端官网下载:http://tortoisesvn.net/downloads.html 1. 安装服务器Setup-Subversion-1.8.3.msi,安装路径D:/Program Files/TortoiseSVN 2. 安装...
VisualSVN是SVN的客户端,和Visual Studio集成在一起, VisualSvn Server是SVN的服务器端,包括Subversion、Apache和用户及权限管理。 如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要...
配置步骤:安装完毕之后就开始了APACHE与SVN的整合配置。 (1),将SVN的bin目录下的扩展名为*.so的文件复制到apache的modoles文件夹下 (2),将SVN的bin 目录下的扩展名为*.dll的文件复制到apache的bin文件夹下 ...
因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置...
包括APACHE、SVN和客户端的安装及配置。 step1、安装apache服务器。 版本:httpd-2.2.15-win32-x86-no_ssl.msi 目录:E:\Apache2.2 验证安装结果:IE中输入:http://localhost,显示:"It works!" ok. step2、安装...
首先说CSVN,其实可以简单理解为SVN+Apache的集成版本,当然CSVN还有其他的一些特性(角色的用户管理,灵活的角色和权限配置以及LDAP认证,基于角色的多仓库管理,自动备份、恢复,以及模板和Rest APIs管理),可以...
获取svn软件工具,可参考官网链接 ... 需要注意的是 上传httpd的subversion.conf子配置文件到/etc/httpd/conf.d/ 安装apahce、svn和必要dav模块 ...创建svn权限管理文件和访问认证文件 su - svn mkdir /home/svn
多库方式:SVNParentPath 指定一个父目录,所有仓库在这个父目录下,使用一个密码文件和一个权限配置文件。优点是增加删除仓库不需要改apache的httpd.conf,不需要重启Apache。缺点是项目多会很混乱。 单库方式:...
因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置...
4.进入Subversion安装目录\Subversion\bin\ 把 mod_authz_svn.so和mod_dav_svn.so 拷贝到 JspStudy\Apache\modules 目录下 5.进入Subversion安装目录\Subversion\bin\ 把 libsvn_delta-1.dll libsvn_fs-1.dll libsvn...
五、配置用户和权限 用文本编辑器打开E:\svn\repos1\conf目录,修改svnserve.conf: 将: # password-db = passwd 改为: password-db = passwd 即去掉前面的 # 注释符,注意前面不能有空格。 然后修改同目录的...
VisualSVN Serve集成了Subversion和Apache,简化了手工配置Subversion的繁琐步骤...VisualSVN是SVN的客户端,和Visual Studio集成在一起, VisualSvn Server是SVN的服务器端,包括Subversion、Apache和用户及权限管理。
因为如果直接使用Subversion,那么在Windows 系统上,要想让它随系统启动,就要封装SVN Server为windws service,还要通过修改配置文件来控制用户权限,另外如果要想以Web方式【http协议】访问,一般还要安装配置...
笔者有幸接触过以下几种常用的配置管理工具:VSS、SVN、Clearcase,在此做一个小小的总结,并Ctrl+C了以前一些网友的对比评论,不一定准确,只是希望通过这些总结对自己和初学者有所帮助。如果想进一步了解这些工具...
VisualSVN Server集成了Subversion和Apache,安装的时候Svn Server已经封装为windows service(如果改变VisualSVN Server的URL的时候,VisualSVN Server会自动重启服务,非常方便),Apache服务器的配置也只是在图像...