我想为只能在网络内访问的 SVN 服务器同时支持 svn: 和 http: 协议。但是,我希望这两个协议共享相同的用户和密码。有没有办法让 Apache 和 svnserve 共享存储在服务器本地文件中的相同用户数据?
答案1
Apache 和 svnserve 有没有办法共享存储在服务器本地文件中的相同用户数据?
不是直接和自动的,不是带有用户数据库的单个文件,但可以是脚本和自动化的(但不安全,以常见的方式)
主要问题是不同的格式(和存储数据的类型)Apache 的用户文件和svnserve
Apache 中的 passwd-file 使用
user:<HASH-OF-PASSWORD>
svnserve 的用户数据库
[users]
user = PASSWORD
由于哈希是不可逆函数,因此你必须
- 在用户数据库中执行所有用户添加和用户编辑(您可以尝试在 Apache 端删除用户,但在这种情况下必须支持双向同步,因此 - 我认为,仅在用户数据库中执行用户删除也将是更好的选择)
- 每次用户数据库更改后,处理解析同步用户数据库和密码文件:
htpasswd -b
在手册页中阅读有关模式的信息(... -i
也可能是关于)
只是IMNSHO:只支持一个服务器会容易得多