【发布时间】:2011-07-02 05:22:18
【问题描述】:
如果我通过 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 访问权限的情况下做同样的事情吗?
OR 2) 是否有可以添加到 hg-ssh 的补丁,以便 hg-ssh 可以在其命令行上获取一些权限。类似于“hg-ssh -read-only repo1 repo2 -read-write repo3”。
或者 3) 获取 "hg -R {repo} serve --stdio" 以获取命令行选项,使其不允许推送。
【问题讨论】:
-
您能否为您的用户设置对此存储库的 https (SSL) 访问权限而不是 ssh?
标签: mercurial ssh push restrict mercurial-server