我有一台 Subversion 服务器,有几个人在处理某个存储库。我正在添加一个新用户,但对于这个新用户,我只希望他能从“特定 IP”访问 SVN 服务器。
如果我可以通过 IP 地址限制访问,不仅限制特定于某个用户,还限制特定于每个存储库的访问,那就更好了,但这不是必需的。
我读了一些资料,似乎应该有一些“LocationMatch”的东西,我可以在 SVN 的 httpd.conf 中编辑,或者添加一个关于拒绝任何 IP 然后允许某些 IP 的声明,但我认为这会影响“所有用户”。
我想我可以为这个新用户等克隆 repo,但我宁愿让他们都在同一个“repo”上工作,这样我就不必在 repo 之间合并同步提交。
答案1
除非您的用户访问的 URL 与其他用户访问的 URL 有某种不同,否则似乎没有办法在不影响其他用户的情况下在 Web 服务器/网络级别阻止访问。您说得对,配置拒绝/允许会影响所有用户的网站访问。
我没有发现任何迹象表明 SVN 支持基于每个用户的内部网络访问配置。
一些快速的研究提出了几个类似的问题,如果你能找到个人用户请求的组件来识别它们,那么这个有趣的黑名单选项列表 https://perishablepress.com/eight-ways-to-blacklist-with-apaches-mod_rewrite/
答案2
我认为应该确认我很久以前已经解决的问题已被接受。我一直在使用 svn_access 规则和 svn_auth 的组合来解决问题,并且完美地工作,以至于当从某些 IP 地址访问时,访问被拒绝,而从其他 IP 地址访问则被允许。此配置是使用 svn/subversion 配置文件完成的。(我正在使用 collabnet edge subversion,但我认为没有理由它不能在任何使用 apache 提供文件的 subversion 服务器上工作。)