🔒 如何修改 Lsky Pro 管理员密码

在使用 Lsky Pro(一个开源图床系统)时,有时我们可能忘记了管理员邮箱和密码。本文将详细介绍 在 Docker 容器下获取管理员邮箱和修改密码 的完整流程。

📝 背景

  • 系统:Lsky Pro
  • 部署方式:Docker Compose
  • 语言:PHP (Laravel 框架)
  • 数据库:MySQL
  • 密码存储:Laravel 的 bcrypt 哈希

注意:直接修改数据库中的密码字段需要使用 Laravel 的 bcrypt 哈希,否则无法登录。


🔧 修改密码步骤

1️⃣ 进入 Lsky Pro 容器

首先列出 Docker 容器,找到 Lsky Pro 容器名称(假设为 lsky):

docker ps

然后进入容器:

docker exec -it lsky bash

此时你已经进入了容器的 Shell 环境。

2️⃣ 使用 Laravel Tinker 修改密码

Laravel 提供了 Tinker 工具,可以直接操作模型和数据库。

  1. 进入项目目录(通常为 /var/www/html):
cd /var/www/html
  1. 启动 Tinker:
php artisan tinker
  1. 在 Tinker 中执行以下命令修改管理员密码(假设管理员 ID 为 1,密码设置为 123456):
$user = \App\Models\User::find(1);   // 查看管理员用户邮箱
$user->password = bcrypt('123456');  // 设置新密码
$user->save();                        // 保存修改
  1. 在Tinker 中验证明文密码是否匹配哈希:
Hash::check('123456', '$2y$10$PMDLiwKMR2FLrhiGmdCmOu5xYWYeeZ/Cpp1UrWlvhQivIUOm./bI6');

输出:

=> true

表示密码 123456 已正确生效。

  1. 退出 Tinker:
exit

3️⃣ 核对数据库中的密码哈希

去 MySQL 数据库 核对密码是否一致:

  1. 进入 MySQL 容器:
docker exec -it lsky-db bash
  1. 使用 root 用户登录 MySQL:
mysql -u root -p

输入 root 密码。

  1. 切换数据库:
USE lsky;

PS:用户名和root密码在docker-compose.yml内

  1. 查询用户密码哈希:
SELECT id, name, password FROM users WHERE id = 1;

输出示例:

id	name	password
1	超级管理员	$2y$10$PMDLiwKMR2FLrhiGmdCmOu5xYWYeeZ/Cpp1UrWlvhQivIUOm./bI6

🔹 如果数据库里的哈希值和 Tinker 输出的哈希值一致,则说明密码修改成功。


4️⃣ 验证登录

修改密码并核对哈希值后,重新访问 Lsky Pro 登录界面,使用新密码 123456 进行登录。

如果登录失败,请注意以下事项:
确认访问的是正确的数据库和容器环境
确认用户状态 status 为 1(启用)
你可以在 Tinker 中检查:

$user->status

如果返回值不是 1,请执行:

$user->status = 1;
$user->save();

✅ 总结

通过本文步骤,你可以在 Docker 容器中安全地修改 Lsky Pro 管理员密码:

  1. 进入 Docker 容器
  2. 使用 php artisan tinker 修改密码
  3. 保存并核对数据库中密码哈希值
  4. 确认登录成功

提示:使用 Laravel 提供的工具比直接操作数据库更安全,确保密码哈希正确。

文章作者: I-Meet
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 I-Meet
科技 docker-compose docker lsky 图床
喜欢就支持一下吧