是否有用于重置 Redmine 管理员密码的 rake 命令?

Posted

技术标签:

【中文标题】是否有用于重置 Redmine 管理员密码的 rake 命令?【英文标题】:Is there a rake command to reset a Redmine admin password? 【发布时间】:2015-08-19 17:46:37 【问题描述】:

我丢失了redmine安装的管理员密码,在尝试了清除salt和设置密码password默认哈希的方法后,我仍然无法登录。

有 rake 命令设置默认密码,还是设置特定密码?

Redmine 版本是 2.4.2

【问题讨论】:

不确定(我现在还没有安装Redmine,所以无法检查),但我相信您可以通过rails c 进行操作。你可以加载RAILS_ENV=production rails c 然后是这样的:u = User.where(email: 'your_email@gmail.com').first; u.password = '123123'; u.password_confirmation = '123123'; u.save! 你能给我提供确切的语法吗?在命令行上使用 Rails 是我不知道的。谢谢 【参考方案1】:

我相信您可以从 rails 控制台重置您的(任何)密码。转到服务器上的 Redmine 文件夹,然后

# start console
RAILS_ENV=production bundle exec rails c

# find your user
user = User.where(email: 'your_email@gmail.com').first

# set new password
user.password = '123123'
user.password_confirmation = '123123'

# save changes
user.save!

请注意,如果save! 返回异常,则无法应用更改。向问题发布异常消息。

【讨论】:

这是真的,对我有用,但之前需要 'cd $REDMINE_ROOT' 才能成功启动控制台。 bundle exec rails c -e production 更适合生产环境登录【参考方案2】:

如果您不记得管理员电子邮件地址,另一种选择是使用用户 ID。

    获取您的管理员用户 ID。

    mysql -u redmine_user -p #登录MySQL

    mysql> 使用 redmine; # 选择redmine数据库

    mysql> select id,login from users where login='admin'; # 显示管理员信息

现在您有了管理员 ID(第一列),它应该是 1,但如果您删除并重新创建了管理员用户,则可以是任意数字。

    到redmine文件夹修改密码

    su - redmine_user # 如果你有 redmine 用户,则进入 redmine 用户

    cd /var/www/redmine # cd 到 redmine 文档根目录

    #启动控制台

    RAILS_ENV=生产包 exec rails c

等到 rail env 出现。

# Load your admin user, I use id = 1 here but it should be what you have found in step 1 
user = User.where(id: 1).first

# set new password
user.password = 'password'
user.password_confirmation = 'password'

# save changes
user.save!
exit

你完成了!

再见

【讨论】:

zlargon.github.io 上的答案是从接受的答案复制到这个答案。最好将您的回复更改为描述获取所需用户 ID 密钥的一般方法的评论。 'select * from users' 返回的列太多。你最好限制返回的列

以上是关于是否有用于重置 Redmine 管理员密码的 rake 命令?的主要内容,如果未能解决你的问题,请参考以下文章

XAMPP 管理员密码重置

Keycloak - 密码重置后自动登录

如何重置 Django 管理员密码?

解析用户密码重置 Swift iOS

用于用户注册、密码重置、忘记密码等的 Keycloak 端点

redmine默认设置如何修改