svnserve.conf 是 svn 服务端核心配置文件,决定连接权限、认证方式与授权规则;需显式启用 anon-access=none、auth-access=write、password-db=passwd、authz-db=authz,并正确设置 realm、格式及编码,修改后须重启服务。

svnserve.conf 是 SVN 服务端最核心的配置文件,它不处理用户密码或权限细节,但决定了谁可以连、以什么身份连、用哪个认证文件、走哪套授权规则。配错这一层,后续所有用户和权限设置都无效。
关键参数必须显式启用且值合理
该文件默认大量参数被注释,直接启用即可,但需注意以下四点:
-
anon-access = none:禁止匿名访问。生产环境绝不允许设为
read或write,哪怕只是临时测试 -
auth-access = write:认证用户默认可读写。若只需只读(如对外发布文档库),可改为
read -
password-db = passwd:指向同目录下的密码文件。如多个仓库共用一套账号,建议写绝对路径,例如
/etc/svn/passwd -
authz-db = authz:启用路径级权限控制。不配置此项,
authz文件将被完全忽略,所有认证用户拥有仓库根目录全权
realm 设置影响登录体验与安全边界
realm 是认证域标识,不是随便起的名字,而是客户端识别“同一套账号”的依据:
- 多个仓库若使用同一
passwd和authz,必须设相同realm,否则客户端会重复弹窗要求输入密码 - 值建议简洁明确,例如
MyCompany-SVN或Project-A-Dev,避免空格和特殊字符 - 不要留空或用默认 UUID,否则运维排查时无法快速定位归属
格式与位置陷阱必须避开
看似简单,但极易因格式错误导致服务启动失败或配置静默失效:
- 所有配置项必须顶格写,行首不能有空格或制表符
- 等号两侧无需空格,
password-db=passwd正确,password-db = passwd在某些旧版本中会报错 - 文件编码必须为 UTF-8 无 BOM,Windows 编辑器保存时要特别注意
- 修改后需重启
svnserve进程才生效,仅 reload 不触发重读
进阶建议:分离配置提升可维护性
单仓库小团队可保持默认结构;中大型部署推荐解耦:
- 将
passwd和authz提到统一路径(如/etc/svn/),各仓库svnserve.conf中用绝对路径引用 - 在
realm中嵌入环境标识,如MyApp-Prod-SVN和MyApp-Test-SVN,便于区分权限策略 - 配合 systemd 服务文件,增加
Restart=on-failure和日志轮转,避免配置错误导致服务静默退出











