Linux SVN Server(Subversion) 配置解决授权失败

环境

CentOS: 8, Subversion: 1.10.2

问题

首先通过svnadmin create myproject命令创建仓库,然后在配置好passwd(用户名、密码),authz,svnserve.conf后,通过SVN客服端访问,发现老是报认证失败(但用户名和密码是对的,如果用户名和密码不对,在SVN客户端则会反复的弹出登录对话框)。配置如下:

[root@srv1]# ls
branches  conf  db  format  hooks  locks  README.txt  tags  trunk

[groups]
develop = user1,user2,user3
release = user4,user5

 

[/trunk]
@develop = rw
 

[/branches]
@develop = r
@release = rw

在项目路径还创建了trunk, branches, tags目录,准备做主干、分支,但通过http://[ip]/myproject/trunk访问,总是认证失败。

解决

经过多次的重试,发现了几个问题:

1、在项目路径建立的trunk,branches,tags目录无效,SVN已不是使用直接的目录映射关系,也就是说项目路径和磁盘物理文件路径并不存在直接的对应关系。实际上,SVN 的提交数据存储在/[仓库路径]/db/revs目录下

2、在还未引入前,authz中的[/trunk][/branches]授权配置是无效的,因为/trunk和/branches这时还没有(自建目录无效),只有[/]授权配置才是有效的,可让SVN客户端可以访问根目录。

下面是正确的配置:

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
develop = user1,user2,user3
release = user4,user5

[/]
@develop = r
@release = r

[/trunk]
@develop = rw
#*=

[/branches]
@develop = r
@release = rw

附:

此外,还发现一个如何避免/trunk目录被删的配置方式:

[/]只读,那么引入的/trunk(注意不是在SVN服务器上创建文件夹,如前所述)一级目录则不可删除。

先给用户赋予写的权限,写入后,然后再把所有用户的写权限去掉,也就是写入前:

[/]
@develop = r
@release = rw

写入后:

[/]
@develop = r
@release = r

修改后要通过命令:svnserve -d -r /home/svn/datadir 命令启动。

这里,/home/svn/datadir为所建的SVN仓库路径。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值