elabFTW系统管理员密码忘了怎么办?
如果您是elab的系统管理员,不小心忘了自己的密码,同时因为系统配置的邮件服务器也出了故障不好用,这时候该怎么办?别急,我们可以通过后台数据库命令找回或者修改自己的系统管理员密码。
查询docker容器名,进入docker-compose文件所在文件夹
docker-compose ps
进入数据库容器内
docker exec -it mysql /bin/bash
以数据库管理员身份进入mysql
mysql -u root -p
此时需要输入root密码,root密码一般会在配置文件中找到
进入elabftw数据库
use elabftw
查看数据库结构
show tables;
查看 uses表所有列的信息和属性
DESCRIBE users;
查询用户信息,此处主要是email
SELECT userid, email FROM users;
从上述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())
安装bcrypt
pip3 install bcrypt
运行上述脚本
python3 generate_password.py
记住上述加密后的密码,更改系统管理员密码
UPDATE users SET Password_hash = 'newpassword生成的加密后密码' WHERE email = '欲修改密码的邮件地址';
确认更改,查询刚刚修改的用户记录
SELECT email, password FROM users WHERE email = '欲修改密码的邮件地址';
elabFTW系统管理员密码忘了怎么办?
https://www.lfelab.cn/archives/B0Tvwsab