Skip to content

🏗️ 项目结构

PasswordReset/
├── main.go                   # 程序入口,CLI 参数解析与分发

├── cmd/                      # 命令行命令实现
│   ├── checker.go            # 系统要求检查公共入口
│   ├── checker_linux.go      # Linux root 权限检查 (build tag: linux)
│   ├── checker_windows.go    # Windows 管理员权限检查 (build tag: windows)
│   ├── setup.go              # 运行环境初始化
│   └── user.go               # 用户添加/列出/删除命令

├── config/                   # 配置管理与加密
│   ├── builtin_key.go        # 内置私钥(编译时 -ldflags 注入)⭐
│   ├── secret_key.go         # 用户安全key加密存储与加载 ⭐
│   ├── crypto.go             # AES-256-GCM 加解密 + SHA256 密钥派生 ⭐
│   ├── file.go               # 用户配置文件读写(确定性 SHA256 文件名)
│   ├── key.go                # Master Key 生成/保存/加载
│   ├── secure_key.go         # SecureKeyManager(缓存、轮换、清理)
│   ├── secure_key_linux.go   # Linux 平台密钥存储 (build tag: linux)
│   └── secure_key_windows.go # Windows 平台密钥存储 (build tag: windows)

├── password/                 # 系统密码操作
│   └── password.go           # 密码生成与修改(chpasswd stdin 管道)

├── env/                      # 环境变量配置
│   └── env.go                # 统一读取环境变量配置

├── sudo/                     # 免密sudo配置(仅 Linux)
│   ├── sudo.go               # 配置器定义
│   ├── configure.go          # 配置免密sudo
│   ├── revoke.go             # 撤销免密sudo
│   └── sudo_stub.go          # 非 Linux 平台桩代码

├── service/                  # 服务管理与运行引擎
│   ├── runner.go             # 运行器(异常恢复核心引擎)⭐
│   ├── commands.go           # 服务管理命令打印
│   ├── cp.go                 # 自复制与文件校验
│   ├── systemd.go            # Linux systemd timer + oneshot 服务
│   ├── WindowsService.go     # Windows SC 服务
│   ├── manager_linux.go      # Linux 服务安装/卸载
│   └── manager_windows.go    # Windows 服务安装/卸载

├── user/                     # 用户管理
│   ├── manager.go            # 用户管理器(异常隔离、ENC 解密与重加密)⭐
│   ├── List.go               # 系统用户列表
│   └── UserExists.go         # 用户存在性检查

├── docs/                     # VitePress 产品官网源文件
│   ├── .vitepress/           # VitePress 配置
│   ├── public/               # 静态资源
│   ├── index.md              # 产品首页
│   ├── guide/                # 用户指南
│   └── security/             # 安全架构

├── client/                   # 编译产物
├── build.py                  # Python 跨平台构建脚本
├── go.mod / go.sum           # Go 模块依赖
└── README.md                 # 项目说明文档

⭐ 标记的文件是 v2.0 新增或重构的核心文件

关键模块说明

config 包 — 加密与配置

v2.0 的核心安全逻辑所在。builtin_key.gosecret_key.go 实现了三层密钥体系的前两层;crypto.go 在已有 AES-256-GCM 基础上新增了日期派生密钥的组件加密功能。

user 包 — 密码重置引擎

manager.go 中的 processSingleUser 方法是每日密码重置的核心入口:解密 ENC → 拼接日期 → 设密码 → 重新加密 → 保存配置。

service 包 — 高可用保障

runner.go 实现了 5 层异常恢复体系,确保密码重置服务持续可用。

基于 MIT 许可发布