我使用Apache和hgweb在我的Web服务器上配置了一个Mercurial存储库。我了解如何使用 htdigest 创建新的用户帐户,但我想知道如何使远程用户能够更改其密码。理想情况下,我会使用临时密码创建他们的帐户,然后向他们发送一封电子邮件,邀请他们更改密码。用户应该能够更改自己的密码,而不是其他用户的密码(否则我只会为他们提供一个 shell 帐户(。
这能做到吗?如果是这样,如何?
Htdigest 是一个 Apache 用户配置文件,原则上管理这些文件超出了 Mercurial 本身的范围。
要提供密码更改表单,您必须编写自己的脚本来操作 htdigest 文件。这应该不会太难。据我了解,该文件的每一行都具有以下格式:
user:realm:MD5(user:realm:pass)
可以在此处找到生成此格式的 MD5 哈希部分的一些示例代码:
http://httpd.apache.org/docs/trunk/misc/password_encryptions.html#digest
也许你应该能够在谷歌上搜索一些这样做的预制脚本,尽管不幸的是我无法快速找到一个。我认为也可以将Apache配置为连接到以这种格式存储密码的预先存在的数据库,并通过该数据库处理密码管理。
或者,我建议考虑存储库服务器包,如RhodeCode或SCM-Manager,它们对这些类型的管理任务具有内置支持。