使用 rails console 重置 Redmine 管理员密码

简介: 忘记密码是常见的事,一般系统会配置有找回密码功能,如果未配置该功能,可以请管理员重置密码。如果管理员密码忘记,又恰好没有配置找回密码的功能,就比较尴尬了。本文记录登录后台使用 rails console 重置 Redmine 管理员密码的过程。

忘记密码是常见的事,一般系统会配置有找回密码功能,如果未配置该功能,可以请管理员重置密码。

如果管理员密码忘记,又恰好没有配置找回密码的功能,就比较尴尬了。即使想直接修改数据库,可密码是加密字段,总不能再找个加密算法吧。

好在 Rails 功能足够强,只要能登录后台,一切都好说。rails console 是 Rails 命令行工具之一,允许程序开发人员或系统运维人员通过命令行与 Rails 应用交互。本文记录使用 rails console 重置 Redmine 管理员密码的过程。

进入 rails console 环境

下面假定 $REDMINE_ROOT 为 Redmine 安装目录,运行以下命令登录后台。

cd $REDMINE_ROOT
RAILS_ENV=production rails console

查找管理员用户

在 rails console 中运行以下命令查找管理员用户。

User.find_by_admin(true)

假设以上输出为:

=> #<User id: 1, login: "manager", hashed_password: "3b46ab60a781a55a11fc1d86137eb49c6e444820", firstname: "Easy", lastname: "Redmine", admin: true, status: 1, last_login_on: "2018-11-30 02:47:49", language: "en", auth_source_id: nil, created_on: "2018-11-13 06:31:44", updated_on: "2018-11-30 05:21:35", type: "User", identity_url: nil, mail_notification: "all", salt: "b97ee92aa69ff9bde75914899ff9f3e4", must_change_passwd: false, passwd_changed_on: "2018-11-13 06:57:32">

选择要修改的用户

从以上 rails console 输出中选择要修改的用户,记住其 login, 并将用户对象赋值给一个变量。

admin = User.find(1)

设置用户对象的密码并保存

输入以下命令,设置用户对象的密码并保存:

admin.password = 'Easy Redmine'
admin.save!

注意设置的密码需要符合系统设置的规则,否则在保存时会出现错误。比如在密码过短时, 执行 admin.save! 会出现异常:

ActiveRecord::RecordInvalid: Validation failed: Password is too short (minimum is 8 characters)

只有在 admin.save! 返回 true 时才表示保存成功。

验证测试及退出 rails console

此时即可启动 Redmine 用查询到的 login 和 新设置的 password 进行测试了。

如果没有问题,即可在 rails console 中输入执行 quit 退出 rails console 环境。

环境说明

以上命令在阿里云主机进行过测试,测试环境的主要软件版本如下:

  • Ubuntu 16.04 LTS
  • ruby 2.3.1p112 (2016-04-26)
  • Rails 4.2.6
  • Redmine 3.4.6
相关文章
|
7月前
|
安全 数据安全/隐私保护 Ruby
5分钟带你重置Gitlab管理员账户密码
5分钟带你重置Gitlab管理员账户密码
363 1
|
jenkins 持续交付 数据安全/隐私保护
|
8月前
|
网络安全 数据安全/隐私保护
wsl默认root密码修改及默认root登录
wsl默认root密码修改及默认root登录
1979 0
|
jenkins Java 持续交付
Jenkins - 默认用户名和密码及启动方法
Jenkins - 默认用户名和密码及启动方法
5382 0
|
jenkins 持续交付 数据安全/隐私保护
jenkins忘记admin密码,解决办法
jenkins忘记admin密码,解决办法
439 0
jenkins忘记admin密码,解决办法
|
开发工具 数据安全/隐私保护 git
TortoiseGit 修改用户名和密码
TortoiseGit 修改用户名和密码
535 0
TortoiseGit 修改用户名和密码
|
jenkins 持续交付 数据安全/隐私保护
jenkins的admin用户的初始密码路径
jenkins的admin用户的初始密码路径
998 0
jenkins的admin用户的初始密码路径
|
安全 数据安全/隐私保护
修改Hybris Administration console管理员默认登录密码
修改Hybris Administration console管理员默认登录密码
170 0
|
关系型数据库 MySQL Linux
如何在忘记mysql的登录密码时更改mysql登录的密码(window及linux)
如何在忘记mysql的登录密码时更改mysql登录的密码(window及linux)最近一直在边学习边开发java项目,理所当然的就少不了跟数据库打交道了,但是有时候就会脑子一短路,把mysql的登录密码给忘记了,这个时候我们又很急切的需要进到数据库中查看数据,那这个时候要怎么才能改密码呢,我就经历了一次这种情况,真的是不经历永远不知道有多么绝望的。
1451 0