SVN服务器的安装和权限管理
2014-03-09 15:03
393 查看
源文件的版本控制是一个比较好的习惯,无论是些论文还是写代码。常见的版本控制有git和SVN。本文结合作者在CentOS6.5上配置SVN服务器的经历,详细描述了SVN服务器的安装和权限管理。
yum install subversion httpd mod_dav_svn //subversion为SVN主程序,httpd为web服务器,mod_dav_svn为利用web来管理SVN的模块。
源文件如下所示
[users]
# harry = harryssecret
# sally = sallyssecret
user = password //添加用户如左边所示
添加用户的格式为用户名 = 用户密码(注意空格)
2. 编辑conf/authz文件,这个文件定义的用户组及相应的权限
源文件如下所示
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe =harry,sally,&joe
admin = user //添加用户组和成员如左边所示
[repos:/] //repos文件夹下的所有文件
@admin = rw //admin组用户有读写权限
*= //其他用户无读写权限
groups下面定义了用户组以及用户组包含的用户。repository定义了根目录下文件夹的访问权限,@admin = rw 代表用户组admin有读写权限,* = r其他有读权限。
3. 编辑conf/svnserve.conf文件,指定authz和passwd文件的路径
如下所示:
[general]
anon-access = none
auth-access = write
password-db = /var/www/svn/repos/conf/passwd
authz-db = /var/www/svn/repos/conf/authz
配置好后,配置防火墙,开放3690端口。
vim /etc/sysconfig/iptables
添加如下代码
-A INPUT -m state --state NEW -m tcp -p tcp--dport 3690 -j ACCEPT
然后重启防火墙,service iptables restart。
启动SVN服务器,svnserve –d–r /var/www/svn。
如果出现端口被占用的话,用killall svnserve命令,关闭已经开启的svnserve,重启svnserve。
这样用SVN客户端就可以访问了,本机访问的方法为svn co svn://127.0.0.1/repos。
但是作者调试了很久用CentOS本机能连上SVN服务器,用windows下的TortoiseSVN始终连不上。
安装好httpd和mod_dav_svn后就可以用web服务器管理SVN了。
首先创建svn项目,方法如(1)。不需要配置conf下的文件。但是 需要用chown -R apache.apache repos(项目文件夹)更改项目文件夹的权限
然后编辑/etc/httpd/conf.d/subversion.conf
源代码如下:
<Location /repos> //将web路径中的repos映射为SVNParentPath
DAV svn
SVNParentPath /var/www/svn //指定svn项目的根路径
#Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT> //取消这句话的注释代表只有写操作的权限控制,读操作没有控制。
# Require SSL connection for password protection.
# SSLRequireSSL
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /var/www/svn/passwd //指定svn用户文件,这个是用htpasswd创建,用户密码被加密的文件
AuthzSVNAccessFile /var/www/svn/authz //指定svn权限控制的文件,默认的没有这句,无法进行权限控制
Require valid-user
# </LimitExcept>
</Location>
上面提到的/var/www/svn/passwd文件的创建是通过hapasswd命令实现:
Htpasswd –cm /var/www/svn/passwd user(用户名)
/var/www/svn/authz 文件结构跟(3.1)中的auhz文件结构相同就不赘述了。
这个方法的好处在于可以用浏览器查看文件,需要启动httpd服务以及在防火墙中开放80端口就可以使用。
由于作者在配置SVN服务器的时候找到了很多资料,但是有些介绍的不是很具体,而有些文章用到的服务器版本太低了以至于没有太多参考价值,所以这里结合自己的经历和参考资料将CentOS6.5下配置SVN服务器的方法做以总结,如有疏漏还请大牛多多指教。
参考资料:
http://www.linuxidc.com/Linux/2013-01/78244.htm
http://www.linuxidc.com/Linux/2011-07/39577.htm
http://bluexp29.blog.163.com/blog/static/338581482013111111724404/
http://www.if-not-true-then-false.com/2010/svn-subversion-access-control-with-apache-and-mod-authz-svn/
1.SVN服务器的安装
在CentOS的更新源中有SVN服务器需要的程序,所以最简单的实现方法为用yum安装。yum install subversion httpd mod_dav_svn //subversion为SVN主程序,httpd为web服务器,mod_dav_svn为利用web来管理SVN的模块。
2.创建SVN目录
这里可以在任意目录下(推荐在/var/www/svn/目录下,原因后面会叙述),利用命令svnadmin create repos(这里的repos为项目名,可根据实际情况修改)。3.权限管理
SVN的访问分为两种方式:(1)用SVN客户端访问;(2)用web浏览器访问。3.1 用SVN客户端访问
1. 编辑repos(repos为项目名)下conf/passwd文件,这个文件定义了SVN的用户和密码。源文件如下所示
[users]
# harry = harryssecret
# sally = sallyssecret
user = password //添加用户如左边所示
添加用户的格式为用户名 = 用户密码(注意空格)
2. 编辑conf/authz文件,这个文件定义的用户组及相应的权限
源文件如下所示
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe =harry,sally,&joe
admin = user //添加用户组和成员如左边所示
[repos:/] //repos文件夹下的所有文件
@admin = rw //admin组用户有读写权限
*= //其他用户无读写权限
groups下面定义了用户组以及用户组包含的用户。repository定义了根目录下文件夹的访问权限,@admin = rw 代表用户组admin有读写权限,* = r其他有读权限。
3. 编辑conf/svnserve.conf文件,指定authz和passwd文件的路径
如下所示:
[general]
anon-access = none
auth-access = write
password-db = /var/www/svn/repos/conf/passwd
authz-db = /var/www/svn/repos/conf/authz
配置好后,配置防火墙,开放3690端口。
vim /etc/sysconfig/iptables
添加如下代码
-A INPUT -m state --state NEW -m tcp -p tcp--dport 3690 -j ACCEPT
然后重启防火墙,service iptables restart。
启动SVN服务器,svnserve –d–r /var/www/svn。
如果出现端口被占用的话,用killall svnserve命令,关闭已经开启的svnserve,重启svnserve。
这样用SVN客户端就可以访问了,本机访问的方法为svn co svn://127.0.0.1/repos。
但是作者调试了很久用CentOS本机能连上SVN服务器,用windows下的TortoiseSVN始终连不上。
3.2用web服务器访问
(这种方法用SVN客户端也能访问,把原来的SVN://+地址变为http://+地址就可以了)
安装好httpd和mod_dav_svn后就可以用web服务器管理SVN了。
首先创建svn项目,方法如(1)。不需要配置conf下的文件。但是 需要用chown -R apache.apache repos(项目文件夹)更改项目文件夹的权限
然后编辑/etc/httpd/conf.d/subversion.conf
源代码如下:
<Location /repos> //将web路径中的repos映射为SVNParentPath
DAV svn
SVNParentPath /var/www/svn //指定svn项目的根路径
#Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT> //取消这句话的注释代表只有写操作的权限控制,读操作没有控制。
# Require SSL connection for password protection.
# SSLRequireSSL
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /var/www/svn/passwd //指定svn用户文件,这个是用htpasswd创建,用户密码被加密的文件
AuthzSVNAccessFile /var/www/svn/authz //指定svn权限控制的文件,默认的没有这句,无法进行权限控制
Require valid-user
# </LimitExcept>
</Location>
上面提到的/var/www/svn/passwd文件的创建是通过hapasswd命令实现:
Htpasswd –cm /var/www/svn/passwd user(用户名)
/var/www/svn/authz 文件结构跟(3.1)中的auhz文件结构相同就不赘述了。
这个方法的好处在于可以用浏览器查看文件,需要启动httpd服务以及在防火墙中开放80端口就可以使用。
由于作者在配置SVN服务器的时候找到了很多资料,但是有些介绍的不是很具体,而有些文章用到的服务器版本太低了以至于没有太多参考价值,所以这里结合自己的经历和参考资料将CentOS6.5下配置SVN服务器的方法做以总结,如有疏漏还请大牛多多指教。
参考资料:
http://www.linuxidc.com/Linux/2013-01/78244.htm
http://www.linuxidc.com/Linux/2011-07/39577.htm
http://bluexp29.blog.163.com/blog/static/338581482013111111724404/
http://www.if-not-true-then-false.com/2010/svn-subversion-access-control-with-apache-and-mod-authz-svn/
相关文章推荐
- Apache+SVN+Trac搭建项目管理服务器的安装与配置详解!
- SVN服务器多个项目的权限分组管理
- 搭建PHP环境需要安装Apache服务器,遇到的一系列的问题(切记需要用管理权限进入CMD)
- mac下配置svn服务器详解及用户的权限管理
- SVN服务器多个项目的权限分组管理
- Linux下安装SVN,仓库创建,用户权限管理
- mac下配置svn服务器详解及用户的权限管理(亲测)
- SCCM2012R2安装时,先决条件”站点服务器计算机帐户管理权限“失败
- mac下配置svn服务器详解及用户的权限管理(亲测)
- linux下搭建svn服务器 (多个项目的权限分组管理)
- [源码管理] ubuntu下SVN服务器安装配置
- mac下svn服务器用户的权限管理
- Linux下SVN安装与权限管理
- cenos6.3下安装svn服务器,以及用户权限配置
- Xcode4.6+SVN构建SVN项目管理(一) 安装VisualSVN服务器
- 安装GIT服务器 gitolite,及权限管理
- centos 6.4 SVN服务器多个项目的权限分组管理
- [项目管理] CentOS VPS上安装SVN服务器
- 首次使用windows管理界面访问安装在UNIX或linux下的DP服务器时提示无权限访问的解决方法
- Git服务器Gitosis安装设置-git权限管理