linux下svn服务器搭建及使用 ,详解目录权限问题...(svn的看过,按照这个配置准没错,很详细)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wuqing2012mxd/article/details/98962203

博主使用的版本是:

svn,版本 1.7.14 (r1542130)
   编译于 Nov 20 2015,19:25:09

首先是创建svn版本库

svnadmin create /svn/smgui1 创建版本库名称:smgui1 (注意,,这个到到后面authz这个文件控制权限的时候会用到)

svnadmin create /svn/smgui2 创建第二个版本库

创建后会生成如下文件:

重点关注这个conf文件夹下面的东西:

里面分别有3个文件,,

重点关注 svnserve.conf这个文件,,,按照我的理解来说,这个文件就是你这个版本库的配置文件,比如下面要介绍的用户文件和权限文件都在这个文件引入的,也就是svnserve.conf这个文件控制这个库的配置,每个库都有不一样的配置

新建的里面默认都是注释的内容,不用管,直接跳到最后一行,添加如下配置

(请注意,接下里的所有文件编辑都不要留空格和配置后面加注释,否者会造成一些乱七八糟的错误,后果自负,博主就因为这个原因折腾了很久,只能说svn命令的读取配置太辣鸡了,连个报错日志都没有,错在哪里都不知道):

正确示例:

[general]
anon-access=none
auth-access=write
password-db=../../passwd
authz-db=../../authz
realm=muji

以下就是错误示例:,("="前后有空格,配置项后面还有#注释)
[general] 
anon-access = none # 匿名不可读写,可以为write,read,none,你不配置默认为read,就会造成你不用验证就可以检出,但是你无法提交,建议为none 
auth-access = write # 验证用户可读写
password-db = /svn/passwd # (可以相对路径,也可以是服务器绝对路径)指向用户名和密码的数据文件,地址不要写错,不然会报authorization failed
authz-db = /svn/authz # 指向用户的权限配置文件,地址不要写错,不然会报authorization failed
realm = muji#客户端检出时,提示信息,指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的 认证域相同,建议使用相同的用户名口令数据文件。 默认值:一个UUID(Universal Unique IDentifier,全局唯一标示)。(注意:还有一点需要注意,那就是svnserve的“realm”的值,在上面的设置下,应该保证所有的版本库使用相同的realm值,这样,对版本库的密码缓存可以在多个版本库之间共享,更多细节见客户端凭证缓存。)但是博主没有去测试这个貌似没有特别大的差别.大家都说一样就一样吧.网上有一些realm=版本库名 这个完全是不理解的做法,但是这些都不影响正常检出.

这里博主的另外2个文件authz和passwd就配置到了服务器:/svn/根目录下面

先配置passwd文件:

[users]
# harry = harryssecret
# sally = sallyssecret
testUser1=123456
testUser2=123456
test=123456
wuqing=wuqing

[users]配置段的配置行格式如下:

<用户名> = <口令>

自己配置喜欢的账号密码吧

接下来是比较重要的权限控制问题:

在authz文件添加如下配置:

[groups]
admin=wuqing
xiami=test
smgui=testUser1,testUser2
[/]
@admin=rw
*=r


[smgui1:/smgui1/nihao]
@smgui=rw
@xiami=rw

[smgui2:/nihao]
@xiami=rw

[groups]配置段中配置行格式如下:

<用户组> = <用户列表>

版本库路径权限段的段名格式如下:

[<版本库名>:<路径>] 

[groups]
admin=wuqing
xiami=test
smgui=testUser1,testUser2

###一个配置单元###
[/] #表示对根目录(即/svn/smgui1目录)下的所有子目录范围设置权限;对版本库smgui2来说,就是/svn/smgui2设置权限
@admin=rw #表示admin用户组有读写
*=r #*表示其他的所有用户只有读的权限,如果没有这行,那么其他用户就没有读也没有写权限.

###一个配置单元###

###一个配置单元###
[smgui1:/smgui1/nihao] #表示对smgui1这个版本库名进行设置,这里表示对/svn/smgui1/smgui1/nihao这个路径设置权限
@smgui=rw

@xiami=rw

###一个配置单元###

###一个配置单元###

[smgui2:/nihao]#表示对smgui2这个版本库名进行设置,这里表示对/svn/smgui2/nihao这个路径设置权限
@xiami=rw

###一个配置单元###

 

按照自己喜欢的方式进行配置吧

开启svn监听了不指定端口的话,默认是3690(博主用的是默认端口)

svnserve -d -r /svn

(指定端口命令:svnserve -d -r /svn --listen-port 3691)

 

检出版本库地址,一次类推:svn://192.168.133.130/smgui1/ 

 

可以去下载了,,,,这里博主感觉还是电脑svn客户端好用....命令什么的太反人类了.

 

相关参考:https://blog.csdn.net/u011280484/article/details/50499534

 

展开阅读全文

没有更多推荐了,返回首页