svnserve --version
yum install subversion
svnserve --version
mkdir -p /usr/local/svn/repos
不建议将多个不相关的项目放入同一个版本库,最好每个项目单独建立一个版本库。
下面我们在/svn/repos目录下创建两个版本库project1和project2
创建project1版本库:
svnadmin create /usr/local/svn/repos/project1
创建project2版本库:
svnadmin create /usr/local/svn/repos/project2
使用cd /usr/local/svn/repos命令跳转到目录
cd /usr/local/svn/repos
分别打开project1和project2可以看到svnadmin创建的版本库的内容
打开project1的conf文件夹可看到三个配置文件:
authz(权限配置文件)、passwd(用户及密码配置文件)、svnserve.conf(svn配置文件)
下面我们要分别对这三个文件进行修改
使用vim对svnserve.conf进行编辑
vim svnserve.conf
点击键盘“i”进入编辑模式
将被#注释的有下面5项去掉前面的#
[general]
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz
# realm = My First Repository
并修改为如下
[general]
anon-access = none #没有登录不能操作
auth-access = write #登录后可执行写操作
password-db = passwd #用户密码配置文件所在位置
authz-db = authz #权限配置文件所在位置
realm = project1 #版本库名称
修改完成后点击键盘“esc”退出编辑模式,再输入:wq保存并退出vim编辑器
使用vim编辑passwd
vim passwd
新增用户zhangsan和lisi,密码都是123456
[users]
zhangsan = 123456
lisi = 123456
保存退出
vim打开authz
vim authz
在[groups]下创建组admin,组员有zhangsan和lisi
[groups]
admin = zhangsan,lisi
为[/]设置权限
[/]
@admin = rw #admin组用户对根目录下所有文件拥有读写权限
* = r #其他用户只有读权限
保存退出
即多个版本库共用一套配置文件
将/usr/local/svn/repos/project1中的conf文件夹复制到/usr/local/svn/repos
[root@instance-gvhw97el conf]# cp -r /usr/local/svn/repos/project1/conf /usr/local/svn/repos/conf
[root@instance-gvhw97el conf]# cd /usr/local/svn/repos
[root@instance-gvhw97el repos]# ls
conf project1 project2
[root@instance-gvhw97el repos]# cd conf/
[root@instance-gvhw97el conf]# ls
authz passwd svnserve.conf
将svnserve.conf中的
realm = project1
修改为
realm = /svn
将passwd修改,增加wangwu和zhaoliu两个用户
[users]
zhangsan = 123456
lisi = 123456
wangwu = 123456
zhaoliu = 123456
将authz修改为
[groups]
admin = zhangsan,lisi
[/]
@admin = rw
[project1:/]
wangwu = rw
[project2:/]
zhaoliu = rw
ps aux|grep svnserve
svnserve -d -r /usr/local/svn/repos/project1
我测试使用的是Win7系统下安装的TortoiseSVN
Win7任意位置新建文件夹,重命名为project1
右击文件夹,点击SVN Checkout…
测试project1的版本库使用URL为 svn://ip:port
用户名zhangsan,密码123456
测试成功
先杀掉已启动的project1的svnserve
启动/usr/local/svn/repos目录下所有svn服务,并需指定配置文件位置
svnserve -d -r /usr/local/svn/repos/ --config-file=/usr/local/svn/repos/conf/svnserve.conf
URL格式为 svn://ip:port/project1和svn://ip:port/project2
分别测试zhangsan、lisi、wangwu、zhaoliu的读写权限,符合预期效果,测试成功!