使用 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
相关文章
|
11月前
|
人工智能 自然语言处理 安全
阿里云万小智AI建站:基础版、标准版、企业版主要功能及价格对比和选择参考
阿里云万小智 AI 建站是一款基于 AI 驱动的自助建站产品,无需代码基础,通过可视化拖拽与 AI 对话即可快速构建高性能、多语言、安全合规的网站。系统深度集成阿里云 ECS、RDS、OSS、CDN、SLB 与 Web 应用防火墙,保障高可用性、数据安全与全球访问速度。其提供多个版本,精准匹配从个人工作室到中大型企业的差异化需求。
1545 167
|
人工智能 运维 监控
MCP 打通AI大模型与 Zabbix,运维新时代来了!
管志勇,高级软件开发工程师、OceanBase认证专家,深耕软件开发多年,专注Zabbix运维开发与数据可视化。本文介绍其如何通过MCP协议实现大模型与Zabbix的智能联动,打造高效运维新范式。
1555 14
|
Go 开发工具
编程笔记 GOLANG基础 004 GOLANG常用命令及VSCODE快捷键
编程笔记 GOLANG基础 004 GOLANG常用命令及VSCODE快捷键
699 2
|
敏捷开发 数据可视化 BI
工作流管理是什么?5款企业工作流管理工具推荐!
工作流管理是一种使处理过程自动化、协调人和应用工具完成工作的技术。它通过规划、组织、协调和控制业务流程,确保工作高效、准确地完成。工作流管理可以提高工作效率、规范业务流程、增强协同工作能力、优化决策支持,并提升企业竞争力。本文介绍了5款工作流管理软件:板栗看板、Trello、Asana、Jira 和 Monday.com,它们各具特色,适用于不同的场景和需求。
工作流管理是什么?5款企业工作流管理工具推荐!
|
安全 数据挖掘 API
解锁数据宝藏:Microsoft Graph API的统一数据革命
解锁数据宝藏:Microsoft Graph API的统一数据革命
1268 1
|
SQL 存储 关系型数据库
MySQL新增字段/索引会不会锁表?
MySQL新增字段/索引会不会锁表?
1983 0
|
监控 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`监控性能。
|
数据可视化 应用服务中间件 nginx
Docker如何连接至本地私服Harbor中 推送镜像、查看镜像、下载镜像
Docker如何连接至本地私服Harbor中 推送镜像、查看镜像、下载镜像
1937 0
|
机器学习/深度学习 数据处理 计算机视觉
LabelStudio环境搭建以及使用且解除上传文件限制
LabelStudio是开源的数据标注工具,支持多种类型如文本、图像、音频、视频的标注任务。它具有多种标注类型、可扩展性、团队协作和版本控制等功能,并可在本地、云端或Docker中部署。通过设置环境变量`DATA_UPLOAD_MAX_NUMBER_FILES`,可以解除上传文件数量限制。使用Docker安装时,可运行包含该变量的命令以启动容器,并通过http://localhost:8080访问。遇到文件数限制问题,可增大此变量值以解决。
5482 3