centos搭建svn,解决认证失败问题

1 安装svn
执行svnserve –version 查看系统中是否安装了svn

[root@localhost project]# svnserve --version
svnserve,版本 1.7.14 (r1542130)
   编译于 Apr 11 201802:40:28

版权所有 (C) 2013 Apache 软件基金会。
此软件包含了许多人的贡献,请查看文件 NOTICE 以获得更多信息。
Subversion 是开放源代码软件,请参阅 http://subversion.apache.org/ 站点。

下列版本库后端(FS) 模块可用: 

* fs_base : 模块只能操作BDB版本库。
* fs_fs : 模块与文本文件(FSFS)版本库一起工作。

Cyrus SASL 认证可用。

如果没有安装,直接使用yum安装

yum install -y subversion 

2 新建svn的工作路径

mkdir /ext/data/svndir

3 新建svn的仓库/项目

svnadmin create /ext/data/svndir/project

4 进入svn的仓库目录

[root@localhost project]# ls
conf  db  format  hooks  locks  README.txt
[root@localhost project]# cd conf/
[root@localhost conf]# ls
authz  passwd  svnserve.conf

已经看到在仓库下面生成了三个文件
authz #权限配置文件
passwd #用户名密码文件
svnserve.conf #资源库配置文件

5 配置用户名密码权限

vi passwd
[users]
# harry = harryssecret
# sally = sallyssecret
lirui = lirui

新增一行: 
lirui = lirui
新增用户“lirui”,密码是“lirui”

vi authz 
新增如下内容
[project:/] #svn根目录
* = rw  #所有用户有读权限 

vi svnserve.conf
打开如下几行前面的注释,一定要删除前面的空格
anon-access = read 
auth-access = write 
password-db = passwd 
authz-db = authz 

6 启动svn
在这里有个坑就是启动时候的路径问题,会造成认证失败,原因就是配置文件authz和启动时候的路径要对应上,否则会出现认证失败。
要注意
authz文件中 使用的是svnadmin create project出来的目录 [project:/]
所以我们对应启动时候要以/ext/data/svndir目录启动,这里一定要对应上,否则会出现认证失败,我出错的原因就是启动时候使用svnserve -d -r /ext/data/svndir/project启动导致的

svnserve -d -r /ext/data/svndir

7 测试
以之上的配置启动后,对应的仓库url为
svn://ip/project ip替换为启动svn服务的服务器的ip
在linux命令行下 执行

svn checkout svn://ip/project

在windows下使用svn工具

输入账号密码都可以登录操作。

8 遇到其他的认证失败问题
如网上搜索的认证失败原因可能是本地保留了之前输入认证信息
在linux端可以直接删除本地的认证记录

rm ~/.subversion/auth/ -rf 

https://www.cnblogs.com/mangu-uu/archive/2012/09/05/2671467.html
window端可以右键文件夹TortoiseSVN==>>settings==>>saved Data==>>Authentication data==>>clear
https://blog.csdn.net/changyinling520/article/details/78093986?foxhandler=RssReadRenderProcessHandler

9 拓展
如果有需要新增用户的话,直接在conf/passwd文件中继续添加即可

[users]
# harry = harryssecret
# sally = sallyssecret
lirui = lirui
cuill = cuill123
dush = dush001

更改用户权限authz文件
让某些用户具有读写权限,其他用户只要访问读权限

[project:/] #svn根目录
lirui = rw
* = r

你可能感兴趣的:(SCM,centos)