如果我通过 hg-ssh 授予访问权限,任何人都知道如何限制用户推送到 hg 存储库?
一些有助于消除显而易见的细节:
1) 这是一种共享主机情况,我没有安装 mercurial-server 的 root 访问权限,也无法创建它需要的“hg”用户名。
2) 当我允许用户通过 SSH 连接到共享主机站点时,他们基本上将在我的 authorized_keys 文件中拥有他们的公钥,并且他们将作为我进行身份验证(即他们将在服务器上拥有我的凭据)。我可以通过在我的 authorized_keys 文件中指定“command =”子句来限制他们仅访问几个 hg 存储库,如下所述:https ://www.mercurial-scm.org/repo/hg-stable/raw-file/tip /contrib/hg-ssh。但是,这使用户可以完全访问这些存储库。我可以将其限制为仅拉取访问吗?
这些都可以解决我的问题:
1)我知道 mercurial-server 以某种方式解决了这个问题,因为他们的所有用户共享同一个名为“hg”的用户帐户。他们是怎么做到的呢?我可以在没有 root 访问权限的情况下做同样的事情吗?
或 2) 是否有可以添加到 hg-ssh 的补丁,以便 hg-ssh 可以在其命令行上获取一些权限。类似“hg-ssh -read-only repo1 repo2 -read-write repo3”的东西。
或 3) 获取“hg -R {repo} serve --stdio”以获取命令行选项,使其不允许推送。