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 = '欲修改密码的邮件地址';


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注