我该如何从后端重置“admin”用户密码。我拥有 Tuleap 安装和 mysql 后端数据库的 shell 访问权限。在当前情况下,我无法使用“忘记密码”链接,因为 Tuleap 上的电子邮件仍未正确设置。
我尝试了以下操作但似乎不起作用:
我使用 /usr/share/tuleap/tools/utils/password_hasher.php 生成密码。通过 mysql 设置密码:
use tuleap;
update user set password='hased-password-from-password-hasher' where user_name='admin';
commit;
这样一来,我就无法以“管理员”身份登录 Tuleap。我注意到的一件事是,每次使用相同密码调用 password_hasher.php 时,它似乎都会添加随机盐并生成哈希值。也许,我在上述步骤中遗漏了其他更新?
搜索此信息使我找到一个邮件列表答案,其中指出使用 password_haser.php 并更新“用户”表,但我没有更多信息。
答案1
- 以 root 身份
/usr/share/tuleap/src/common/User/User.class.php
在文本编辑器中打开 - 一直向下滚动到文件底部
- 安排方法“doesUserHaveSuperUserPermissionDelegation”始终返回 true,例如
受保护的函数 doesUserHaveSuperUserPermissionDelegation() { 返回 true; // XXX 返回 $this->getPermissionManager()->doesUserHavePermission($this, new SiteAdministratorPermission()); }
然后保存文件 - 导航至 https://tuleap/admin 并通过 UI 执行任何所需的更改
- 完成工作后,不要忘记撤消步骤 3