Ubuntu 搭建 SASL+SVN 服务
本文摘自qaq卟言博客。Ubuntu 搭建 SASLSVN 服务前言前天直播写代码完事了后向我的svn仓库提交完代码后闲得无聊就看了一下仓库日志发现有很多非法错误请求于是直播的时候就把这个日志监控拦截也补充到我之前的监控中了也就是在 卟言更新日志 页面中的2026-01-04中提到的实现拦截SVN非法请求做完了这个功能后于是乎我就去研究了一下官方的文档说明选择服务器配置 - 《使用 Subversion 进行版本控制》发现以下的内容如果您试图为您的团队设置最简单的服务器使用普通的 svnserve 安装是最简单、最快的途径。但是请注意您的存储库数据将通过网络以明文形式传输。如果您的部署完全在您公司的局域网或 VPN 内这不成问题。如果存储库暴露于开放的互联网您可能需要确保存储库的内容不敏感例如它只包含开源代码或者您需要付出额外努力来配置 SASL 以加密网络通信。好家伙根本就没有加密数据内容好家伙合着我一直都在裸奔当然只是存储库数据用户密码是不会传输的参考svnserve自定义服务器 - 《使用 Subversion 进行版本控制》默认情况下svnserve 服务器只知道如何发送 CRAM-MD5[61] 身份验证质询。本质上服务器向客户端发送少量数据。客户端使用 MD5 哈希算法对数据和密码的组合创建指纹然后将指纹作为响应发送。服务器使用存储的密码执行相同的计算以验证结果是否相同。实际密码不会在网络上传输。然后我就按照官方的要求进行配置加密官方的文档中有两种方法实现第一种是通过代理比如通过apache或nginx等web服务器连接svn架构为svnapacheldap的集成第二种是通过svnsaslldap的集成第一种的话checkout地址都需要从svn://改成https://那我全部拉仓库的客户端都要换太麻烦了毕竟svn客户端在1.5版本后都支持sasl功能了所以这里直接用第二个方法就够了SASL安装SASLsudo apt install libsasl2-2 libsasl2-modules sasl2-bin配置sasl修改配置sudo nano /etc/default/saslauthd配置内容STARTyesMECHANISMSsaslsb配置介绍START: 是否在系统启动时自动启动yes启用no禁用MECHANISMS: 认证机制sasldb直接用自带的数据库文件/etc/sasldb2来存储和验证用户密码pam用系统的 PAMPluggable Authentication Modules进行认证比如系统的用户密码ldap使用 LDAP 目录服务验证用户shadow直接读取 /etc/shadow 文件验证系统用户需要 root 权限kerberos5使用 Kerberos 进行认证重启服务/etc/init.d/saslauthd restart创建用户添加sudo saslpasswd2 -c -u 卟言SVN版本库 buyan删除sudo saslpasswd2 -d -u 卟言SVN版本库 buyan测试testsaslauthd -u buyan -p 123456789 -r 卟言SVN版本库联动svn创建配置文件sudo touch /usr/lib/sasl2/svn.conf编辑配置文件sudo nano /usr/lib/sasl2/svn.conf配置内容pwcheck_method: saslauthdmech_list: CRAM-MD5 DIGEST-MD5 PLAIN配置说明pwcheck_method: 指定 SASL 验证密码的方式auxprop使用 辅助属性插件Auxiliary Property Plugin 获取来用户密码插件由 auxprop_plugin 指定比如说 sasldbsaslauthd直接使用 saslauthd 服务验证在默认配置中/etc/default/saslauthd修改。pwcheck使用 pwcheck 守护进程已过时。shadow直接读取系统 /etc/shadow 文件需 root 权限。auxprop_plugin: 指定 auxprop 方式使用的具体插件sasldb使用 SASL 自带的数据库文件通常是 /etc/sasldb2存储用户密码sql使用 SQL 数据库如 MySQL、PostgreSQL来获取密码ldapdb使用 LDAP 目录服务来获取密码mech_list: 指定 SASL 服务端支持的 认证机制列表PLAIN: 明文传输用户名和密码Base64 编码本质仍是明文CRAM-MD5: 基于挑战 - 响应Challenge-Response机制不传输明文密码DIGEST-MD5: 类似 CRAM-MD5但更复杂支持会话安全Session Security设置权限sudo chown buyan:buyan /etc/sasldb2sudo chmod 600 /etc/sasldb2不设置可能会出现这种问题SVN配置SVN安装步骤这里不再啰嗦了可以查看ubuntu svn版本库搭建修改配置sudo nano /media/buyan/1/版本库/conf/svnserve.conf内容[sasl]use-sasl truemin-encryption 0max-encryption 256注意# password-db passwd这行保持注释掉的状态不使用passwd文件min-encryption因为sasl已经加密了如果像网上配置125可能会报Could not obtain the list of SASL mechanisms或者乱码realm要跟sasl创建用户的仓库一致并且不能有空格参考svnserve自定义服务器 - 《使用 Subversion 进行版本控制》一些警告首先确保saslpasswd2的“realm”参数与您在存储库的svnserve.conf文件中定义的 realm 相匹配 如果它们不匹配身份验证将失败。此外由于 SASL 的缺陷公共 realm 必须是一个不包含空格的字符串。 最后如果您决定使用标准的 SASL 密码数据库 请确保svnserve程序对该文件具有读取权限如果使用 OTP 等机制可能还需要写入权限。重启killall svnserve以用户身份运行不要使用sudo或管理员这样子限制对用户文件的读访问权限svnserve –d –r /media/buyan/1/版本库测试额外其实如果是很多人开发比如公司内部可以配LDAP来配合SASLLDAP协议的好处就是你公司的所有员工在所有这些工具里共享同一套用户名和密码来人的时候新增一个用户就能自动访问所有系统走人的时候一键删除就取消了他对所有系统的访问权限不过我自己一个人的SVN就不搞这些花里胡哨的了因为就我一个用户参考选择服务器配置 - 《使用 Subversion 进行版本控制》svnserve自定义服务器 - 《使用 Subversion 进行版本控制》相关SVN无法编辑日志信息的解决方法ubuntu svn版本库搭建

相关新闻

Mitsubishi EtherNet/IP With Omron

Mitsubishi EtherNet/IP With Omron

三菱RJ71EIP91欧姆龙 NX102 标签数据链接Tag Data Link就是EIP的Class 1 通信(循环/隐式通信)参数 生产者和消费者模型 在EtherNet/IP这个工业以太网协议中,“生产者-消费者”模型是其核心通信机制,它解决了工业控制中数据需要高效、同步分发给多个设备的…

2026/7/4 5:08:23阅读更多 →
《大模型实战指南》—— 面向软件开发者的系统性入门6

《大模型实战指南》—— 面向软件开发者的系统性入门6

第六章 私有化部署:从单机到集群的工程实践 “部署不是终点,而是 AI 产品生命周期的起点。” —— 本书作者 _abab 6.1 部署目标与约束:明确需求再动手 私有化部署的核心是 “在满足业务需求的前提下,实现安全、稳定、可扩展、低成本运行”。在动手前,必须明确以下关键…

2026/7/4 5:08:23阅读更多 →
含图解与实例)乐观锁、悲观锁和分布式锁,做项目时到底该怎么选?

含图解与实例)乐观锁、悲观锁和分布式锁,做项目时到底该怎么选?

乐观锁:适合冲突少的更新场景很多人第一次听到“乐观锁”时,会下意识觉得它是一种“真的加了锁”的机制。其实不是,乐观锁不强调“先锁住”,而强调“更新时确认数据还是不是我看到的那份数据”。1.1 乐观锁到底在解决什么问题&…

2026/7/4 5:08:23阅读更多 →
提升用户体验:使用spatie/menu实现动态高亮当前页面菜单的3种方法

提升用户体验:使用spatie/menu实现动态高亮当前页面菜单的3种方法

提升用户体验:使用spatie/menu实现动态高亮当前页面菜单的3种方法 【免费下载链接】menu Html menu generator 项目地址: https://gitcode.com/gh_mirrors/menu/menu 在Web开发中,一个直观、清晰的导航菜单对于用户体验至关重要。当用户浏览网站时…

2026/7/4 9:33:52阅读更多 →
炉石传说HsMod插件:如何通过50+实用功能全面优化你的游戏体验

炉石传说HsMod插件:如何通过50+实用功能全面优化你的游戏体验

炉石传说HsMod插件:如何通过50实用功能全面优化你的游戏体验 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 炉石传说HsMod插件是一款基于BepInEx框架开发的游戏增强工具&#…

2026/7/4 9:33:52阅读更多 →
零基础Python入门:FutureCoder交互式学习平台全攻略

零基础Python入门:FutureCoder交互式学习平台全攻略

零基础Python入门:FutureCoder交互式学习平台全攻略 【免费下载链接】futurecoder 100% free and interactive Python course for beginners 项目地址: https://gitcode.com/gh_mirrors/fu/futurecoder 想学Python却不知从何下手?面对枯燥的教程和…

2026/7/4 9:33:52阅读更多 →
Mermaid Live Editor终极指南:用代码绘制专业图表的完整教程

Mermaid Live Editor终极指南:用代码绘制专业图表的完整教程

Mermaid Live Editor终极指南:用代码绘制专业图表的完整教程 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-…

2026/7/4 9:33:52阅读更多 →
transformer进阶之路:#1 整体概述

transformer进阶之路:#1 整体概述

什么是 transformertransformer 架构擅长处理本质上具有顺序性的文本数据。它以文本序列作为输入,并生成另一个文本序列作为输出。例如,将输入的英文句子翻译成西班牙语。它的核心是一系列编码器层和解码器层。为避免混淆,我们将单个层称为「…

2026/7/4 9:33:52阅读更多 →
深入解析NVIDIA Isaac GR00T:下一代机器人基础模型的架构与性能

深入解析NVIDIA Isaac GR00T:下一代机器人基础模型的架构与性能

深入解析NVIDIA Isaac GR00T:下一代机器人基础模型的架构与性能 【免费下载链接】Isaac-GR00T NVIDIA Isaac GR00T N1.7 - A Foundation Model for Generalist Robots. 项目地址: https://gitcode.com/gh_mirrors/is/Isaac-GR00T NVIDIA Isaac GR00T N1.7是一…

2026/7/4 9:28:52阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/7/3 14:18:39阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/7/3 14:38:35阅读更多 →
端到端自动驾驶:从GTC‘26看工程可信落地的核心逻辑

端到端自动驾驶:从GTC‘26看工程可信落地的核心逻辑

1. 项目概述:当算法工程师走进GTC26展厅,看到的不是芯片,而是“端到端”的呼吸节奏“端到端”这三个字,在GTC’26现场出现的频率,高得像NVLink带宽测试时的峰值曲线——它不再是一个论文里的技术路径选项,而…

2026/7/4 0:02:48阅读更多 →
缺牙修复科普:常见义齿类型与选择参考

缺牙修复科普:常见义齿类型与选择参考

缺牙修复科普:常见义齿类型与选择参考牙齿缺失是中老年人群中较为常见的口腔问题,不仅会造成咀嚼不便、进食受影响,长期还可能对营养摄入与日常社交带来困扰。义齿是改善缺牙问题的常用方式,目前市面上的义齿种类较多,…

2026/7/4 0:02:48阅读更多 →
STM32F091RC与LTC6904实现高精度方波信号生成

STM32F091RC与LTC6904实现高精度方波信号生成

1. 项目概述:LTC6904与STM32F091RC的精准方波生成方案在嵌入式系统开发中,精确的时钟信号和定时控制往往是项目成败的关键。LTC6904作为一款低功耗、高精度的可编程振荡器芯片,与STM32F091RC这款ARM Cortex-M0内核微控制器的组合,…

2026/7/4 0:02:48阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/4 1:16:56阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/4 2:33:55阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/4 2:33:55阅读更多 →