0
  • 操作系统:OpenSUSE Linux
  • 版本控制:Mercurial Hg
  • 网页前端:Apache2.2

我可以点击浏览 http://servername:port/hg

当我单击它时,它会提示我输入 Windows AD 目录凭据。

现在,我在 /srv/www/htdocs/hg/repos 文件夹中有以下存储库:

  • 回购项目A
  • 回购项目B
  • 回购项目C

单击上面的存储库链接就可以了,因为我可以看到 Hg 前端。

现在,我想添加身份验证和授权,以便:

  • 一个)

    • 只有用户“c123456”、“c654321”可以提交 RepoProjectA 中的文件。
    • 只有用户“c222222”和“c333333”可以推送更改,其他人不能推送

    对于上述内容,我需要更改哪些文件 (???) 以及我应该添加哪些更改/条目来实现这一点。

    PS:我使用 LDAP 作为使用 Windows Active Directory 的身份验证。我是否仍然需要使用 htpasswd2 或 htdigest2 模块来创建任何用户文件——或者为了授予对组的访问权限,创建任何组文件????我认为,可以从 Active Directory 中已有的内容中获取这些组。由于这些是不同的项目存储库,我需要单独的 .htaccess 文件吗?一个全局文件就不能解决问题吗?

  • 二)

    • 只有用户“u123456”和“u654321”可以在 RepoProjectB 的分支“branch1”上提交文件。(假设我们在 RepoProjectB 中有一个分支“branch1”)。
    • 只有用户“u222222”和“u333333”可以推送文件
    • 没有人可以在 TRUNK/default 分支上提交/推送任何内容
    • 例外:“RepoProjectB-GROUP”或“ABCDGroup”组中的每个人都可以在此存储库或其分支中执行任何操作。

对于上述内容,我需要更改哪些文件 (???) 以及我应该添加哪些更改/条目来实现这一点。

  • C) 我尝试在我的 Windows 客户端机器上使用 CMD 提示符和实用程序 TortoiseHg,同时在 Hg 中执行任何操作(克隆、分支、添加、提交、推送等),每次都会提示我提供用户名和密码。它正在工作,但我在 Hg 中的每一个动作都会得到提示。

    如何限制让用户在每个会话中仅提供一次 Windows Active Directory 凭据。

任何人都可以放一些光。

4

1 回答 1

0

在 mercurial 密钥环方面取得了一些进展,接下来我要做的是开始使用更细粒度的组并以 Directory 指令方式允许/拒绝。

更多相关信息在:

http://stackoverflow.com/questions/14267873/mercurial-hg-no-changes-found-cant-hg-push-out/14269997#14269997
http://www.linuxquestions.org/questions/showthread.php?p=4867412#post4867412
http://stackoverflow.com/questions/12503421/hg-push-error-and-username-not-specified-in-hg-hgrc-keyring-will-not-be-used/14270602#14270602
http://stackoverflow.com/questions/12468634/opensuse-apache-windows-ldap-group-user-authentication-mercurial/14270648#14270648

如果在 mercurial 中多次提示用户凭据。设置 Mercurial_Keyring 然后

这个问题来了,没有人以简单的方式解释。

???--如果我使用服务器名、服务器名的 IP 或服务器名的 FQDN,如何使

[auth]
xx.prefix = servername/hg_or_something对服务器名/hg 位置下的所有存储库起作用?

答案:Arun • 2 分钟前 -</p>

OK, I put this in ~/.hgrc (Linux/Unix -home directory's .hgrc hidden file) or Windows users %UserProfile%/mercurial.ini or %HOME%/mercurial.ini file.

[auth]
default1.schemes = http https
default1.prefix = hg_merc_server/hg
default1.username = c123456

default2.schemes = http https
default2.prefix = hg_merc_server.company.com/hg
default2.username = c123456

default3.schemes = http https
default3.prefix = 10.211.222.321/hg
default3.username = c123456

Now, I can checkout using either Server/IP/Server's FQDN.
于 2013-01-11T02:18:50.810 回答