elabFTW系统管理员密码忘了怎么办?

如果您是elab的系统管理员,不小心忘了自己的密码,同时因为系统配置的邮件服务器也出了故障不好用,这时候该怎么办?别急,我们可以通过后台数据库命令找回或者修改自己的系统管理员密码。

  1. 查询docker容器名,进入docker-compose文件所在文件夹

docker-compose ps

  1. 进入数据库容器内

docker exec -it mysql /bin/bash

  1. 以数据库管理员身份进入mysql

mysql -u root -p

此时需要输入root密码,root密码一般会在配置文件中找到

  1. 进入elabftw数据库

use elabftw

  1. 查看数据库结构

show tables;

  1. 查看 uses表所有列的信息和属性

DESCRIBE users;

  1. 查询用户信息,此处主要是email

SELECT userid, email FROM users;

  1. 从上述users的信息来看,密码一般是加密存储的,因此直接设置为明文密码可能不可行,您需要将新密码加密。如果您使用的是 bcrypt(elabftw 默认使用的加密方式),需要先通过 bcrypt 对密码进行加密,然后更新数据库中的密码。因此可以通过python脚本来生成哈希密码

vi generate_password.py

脚本如下:

import bcrypt

# 新密码
new_password = "new_password"  # 替换为您想设置的新密码
# 生成盐值
salt = bcrypt.gensalt()
# 生成哈希密码
hashed_password = bcrypt.hashpw(new_password.encode('utf-8'), salt)

# 输出加密后的密码
print("加密后的密码为:", hashed_password.decode())
  1. 安装bcrypt

pip3 install bcrypt
  1. 运行上述脚本

python3 generate_password.py

  1. 记住上述加密后的密码,更改系统管理员密码

UPDATE users SET Password_hash = 'newpassword生成的加密后密码'  WHERE email = '欲修改密码的邮件地址';

  1. 确认更改,查询刚刚修改的用户记录

SELECT email, password FROM users WHERE email = '欲修改密码的邮件地址';


elabFTW系统管理员密码忘了怎么办?
https://www.lfelab.cn/archives/B0Tvwsab
作者
Administrator
发布于
2025年01月18日
许可协议