使用 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
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
探索AI在软件测试中的转型力量###
本文深入探讨了人工智能(AI)技术在软件测试领域的应用现状与未来趋势,通过分析AI如何优化测试流程、提高测试效率与质量,揭示了AI赋能下软件测试行业的转型路径。传统测试方法面临效率低、成本高、覆盖率有限等挑战,而AI技术的引入正逐步改变这一格局,为软件测试带来革命性的变化。 ###
|
机器学习/深度学习 数据采集 数据可视化
Python/Anaconda双方案加持!Jupyter Notebook全平台下载教程来袭
Jupyter Notebook 是一款交互式编程与数据科学分析工具,支持40多种编程语言,广泛应用于机器学习、数据清洗和学术研究。其核心优势包括实时执行代码片段、支持Markdown文档与LaTeX公式混排,并可导出HTML/PDF/幻灯片等格式。本文详细介绍了Jupyter Notebook的软件定位、特性、安装方案(Anaconda集成环境与原生Python+PIP安装)、首次运行配置及常见问题解决方案,帮助用户快速上手并高效使用该工具。
|
Go 开发工具
编程笔记 GOLANG基础 004 GOLANG常用命令及VSCODE快捷键
编程笔记 GOLANG基础 004 GOLANG常用命令及VSCODE快捷键
597 2
|
应用服务中间件 Apache 数据库
校园表白墙源码LoveWall
LoveWall V2.0Pro是款社区型表白墙,提供点赞、评论、发弹幕、多校区支持及分享功能。环境需Centos7+/Windows Server 2008+、宝塔面板、Apache或Nginx、PHP7.1+及数据库5.6+。
697 0
|
Linux 网络安全 开发工具
Linux取消秘钥登录,改为用户名密码登录
记录下刚刚取消秘钥登录,改为用户名密码登录。 一般在阿里云购买服务器后,可能未点自定义密码登录,使用了秘钥。又不想重置系统盘 下面操作可以参考下 一、修改 vim /etc/ssh/sshd_config 去掉PermitRootLogin yes 前面的#注释 二、 修改 PasswordAut...
8663 1
|
监控 Linux Shell
Linux命令ionice:优化磁盘I/O优先级
`ionice`是Linux工具,用于调整进程的磁盘I/O优先级,改善系统响应。它设置三种I/O调度类:Idle(低优先级),Best-effort(默认)和Real-time(高优先级)。通过 `-c` 和 `-n` 参数分别设定调度类和优先级。示例:`ionice -c3 -n7 command`(低优先级I/O)和`ionice -c2 -p 1234`(改变PID为1234的进程为Idle类)。使用时注意平衡系统资源,避免干扰其他任务,并结合`iostat`、`iotop`监控性能。
|
芯片
 总线(Bus)
 总线(Bus)
766 0
|
安全 Java 数据库
Java新秀登场:深入了解Record类型
Java新秀登场:深入了解Record类型
3219 0
|
缓存 Linux 编译器
C/C++ 函数调用以及Linux中系统调用 开销介绍:介绍C/C函数调用以及Linux中系统调用的开销情况
C/C++ 函数调用以及Linux中系统调用 开销介绍:介绍C/C函数调用以及Linux中系统调用的开销情况
613 0
|
存储 弹性计算 运维
阿里云无影云电脑(原云桌面)详细介绍
阿里云无影云电脑(原云桌面)详细介绍,阿里云推出无影云电脑,很多用户不清楚云电脑是什么,云电脑是一种安全高效的云上桌面服务,一般用于企业办公。云电脑支持快速便捷的桌面环境创建、部署、统一管控与运维。企业选择云电脑无需前期传统硬件投资,云电脑可以快速构建安全、高性能、低成本的企业桌面办公体系。阿里云百科来详细说下什么是无影云电脑以及云电脑和传统PC、VDI之间的区别
3693 3