我的服务器上有多个 svn 存储库。例如:
/var/svn/repo1
/var/svn/repo2
/var/svn/repo3
我想只授予客户端对 repo2 的访问权限,因此我创建了一个用户“client”,并向他提供了 SSH 访问权限。现在,客户端可以按如下方式签出 repo2:
svn co svn+ssh://client@<public-ip>/var/svn/repo2
但问题是,他可以使用他的用户名(客户端)和密码通过 SSH 进入服务器,并且可以弄乱其他文件。他还可以签出所有其他存储库。我如何限制客户端只能签出 repo2。
他不应该能够:
- 访问任何其他存储库
- 提交到 repo2
- SSH 连接服务器
授予他检出存储库的权限是否明智?
谢谢。
答案1
通过隧道运行时,授权主要由操作系统对存储库数据库文件的权限控制。
但即使在隧道的情况下,您仍然可以使用 svnserve.conf 文件来阻止访问,只需设置 auth-access = read 或 auth-access = none。