feat: 实现动态密码系统,消除硬编码
核心改动: 1. db.rs - 默认密码从环境变量读取或自动生成 - 优先级: MOMENTRY_DEFAULT_PASSWORD > 自动生成 - 格式: demo_<timestamp> 或自定义 - 首次创建时打印密码到控制台 2. main.rs - SMB 服务密码动态化 - 从 SMB_PASSWORD 或 MOMENTRY_DEFAULT_PASSWORD 读取 - 支持自定义 SMB 用户名 3. user_tool.rs - 新增用户管理工具 - list: 列出所有用户 - create: 创建新用户 - set-password: 修改密码 - delete: 删除用户 - init-demo: 初始化 demo 用户 4. install.sh - 安装时自动生成密码 - 生成随机密码: demo_$(openssl rand -hex 4) - 保存到 .env 文件 - 初始化数据库 5. .env.template - 新增密码配置 - MOMENTRY_DEFAULT_PASSWORD - SMB_USER / SMB_PASSWORD 安全改进: - 消除硬编码密码 'demo123' - 每次安装密码唯一 - 密码哈希存储 (Argon2id) - 支持自定义强密码 文档: - docs/DEFAULT_PASSWORD_SYSTEM.md 完整说明
This commit is contained in:
29
install.sh
29
install.sh
@@ -121,6 +121,35 @@ log_info "✅ 构建完成"
|
||||
|
||||
echo ""
|
||||
|
||||
# 步骤 5.5: 初始化默认用户
|
||||
log_step "步骤 5.5/6: 初始化默认用户..."
|
||||
|
||||
# Generate a secure random password
|
||||
DEFAULT_PASSWORD="demo_$(openssl rand -hex 4)"
|
||||
|
||||
# Set environment variable for password
|
||||
export MOMENTRY_DEFAULT_PASSWORD="${DEFAULT_PASSWORD}"
|
||||
|
||||
log_info "默认用户密码: ${DEFAULT_PASSWORD}"
|
||||
log_warn "请妥善保存此密码!"
|
||||
|
||||
# Save to .env file
|
||||
if [ -f "${SCRIPT_DIR}/.env" ]; then
|
||||
echo "" >> "${SCRIPT_DIR}/.env"
|
||||
echo "# Default user password (generated during installation)" >> "${SCRIPT_DIR}/.env"
|
||||
echo "MOMENTRY_DEFAULT_PASSWORD=${DEFAULT_PASSWORD}" >> "${SCRIPT_DIR}/.env"
|
||||
log_info "✅ 密码已保存到 .env 文件"
|
||||
fi
|
||||
|
||||
# Initialize database
|
||||
cd "${SCRIPT_DIR}/src-tauri"
|
||||
"${SCRIPT_DIR}/src-tauri/target/release/user_tool" init-demo 2>/dev/null || {
|
||||
log_warn "用户工具未编译,将在首次启动时初始化"
|
||||
}
|
||||
cd "${SCRIPT_DIR}"
|
||||
|
||||
echo ""
|
||||
|
||||
# 步骤 6: 创建启动脚本
|
||||
log_step "步骤 6/6: 创建启动脚本..."
|
||||
|
||||
|
||||
Reference in New Issue
Block a user