Answers:
要访问svn + ssh URL,svn客户端使用“ ssh -q user @ host svnserve -t”启动一个svnserve实例,并通过stdin / stdout与该实例进行对话。
如果您的用户需要正常的ssh访问,您仍然可以通过限制对一个用户的访问来阻止他们访问存储库(chown -R svnserve:svnserve存储库; chmod -R g-rwx,o-rwx存储库),并通过替换svnserve命令这个setuid / setgid svnserve包装程序。
在共享用户环境中,我建议设置一个真实的Subversion服务器(svnserve
通过Apache或通过Apache)。在这种环境中,单个用户根本不需要访问存储库文件,因为所有文件访问都是在服务器进程的用户帐户下完成的。
《 Subversion》书中有一节“ 选择服务器配置”可能会有所帮助。从该部分(重点是我的):
如果您现有的基础设施高度依赖SSH帐户,并且您的用户已经在服务器计算机上拥有系统帐户,则部署svnserve-over-SSH解决方案是有意义的。否则,我们不会广泛向公众推荐此选项。通常,让您的用户通过svnserve或Apache管理的(虚构)帐户(而不是成熟的系统帐户)访问存储库更为安全。
这个站点有一些不错的技巧:http : //svn.apache.org/repos/asf/subversion/trunk/notes/ssh-tricks
如果这些都不适合您,也许可以通过一种解决方法来解决问题?您可以在有人提交内容时对存储库进行备份,方法是将以下内容添加到提交钩子中:sudo rsync -a / my / repo / path / my / closed / path /