我为使用 Trac (Apache、mod_python) 和 subversion 的项目设置了一台独立服务器 (Ubuntu 9.04)。我创建了本地用户帐户,以便被授予存储库提交权限的项目成员使用 ssh...
sudo adduser --ingroup uomdev --force-badname JohnDoe
...这让他们可以轻松结账...
svn checkout svn+ssh://[email protected]/usr/local/svn/uom
...并为他们提供相同的 Trac 帐户...
sudo htdigest /usr/local/trac/users.htdigest trac JohnDoe
...我手动同步两个帐户之间的密码(生成一个新密码,在两个帐户上强制使用,然后通过电子邮件发送给用户)。
当用户忘记密码时,这种方法没问题,但如果用户想自己更改密码,这种方法就行不通了。他们可以通过 ssh 进入服务器并运行 passwd,但这样会留下 Trac 帐户。
在很好已经写过了:
与其他仅使用另一个数据库表来存储用户的错误跟踪系统不同,Trac 采用了允许用户利用其 Web 服务器可用的众多身份验证模块的方法。这意味着许多用户不需要手动管理 Trac 用户,因为他们可以将 Trac 绑定到 LDAP、Active Directory 或他们已经拥有的任何集中式用户系统。
我并不热衷于安装/配置 LDAP 或 Active Directory 以保持这些同步。我不相信 AccountManagerPlugin 破解会有帮助。有什么想法吗?
答案1
Joel,我的设置和你的一样。我使用密钥身份验证配置了 svn+ssh,所有与浏览器相关的内容都将密码保存在 apache 文件中,对于 /etc/passwd、trac、邮件和其他内容也是如此。
我所做的是一个简单的网络界面,用户可以在其中更改密码,然后在我需要的地方更新密码,另外还有一些额外的选项。
还有另一种选择 - 您自己的 bash 脚本,用户将以与 passwd 相同的方式执行该脚本。事实上,您可以更改此 bash 脚本名称,使其环绕 passwd。对我来说,这应该是更好的解决方案,但我的组织中的大多数人不习惯使用命令行,因此浏览器是最好的解决方案。
答案2
这一页包含有关如何在 Apache 中对 Unix 用户进行身份验证的信息。