Appearance
📖 命令参考
密钥体系说明
每个用户拥有独立的安全密钥(userKey,8-32字符),密码公式为:
SHA256(builtinKey:userKey:YYYYMMDD) → base64 编码 → 最终密码- builtinKey:编译时注入,客户端和服务端天然一致
- userKey:添加用户时交互输入或从文件读取,每用户独立,8-32字符
- 日期:当天 YYYYMMDD,确保每天密码不同
::: important 安全设计 客户端仅负责密码重置,不提供密码明文输出。密码查询统一通过 Web 服务进行,便于审计和访问控制。 :::
密码查询
密码查询请通过 Web 服务进行,客户端不再提供解密输出功能:
- 公共查询平台:https://encrypt.liumou.site/
- 私有部署:参考 部署 Web 服务
用户管理
-add-user
添加或更新用户。安全密钥通过交互方式安全输入,不回显到终端。
安全限制
- 禁止将 root 用户作为密码重置对象,添加 root 用户将被拒绝
- 免费版最多管理 1 个用户,超出上限将无法添加
bash
# 添加用户(交互输入安全密钥)
sudo PasswordReset -add-user=admin -add
# 配合其他属性
sudo PasswordReset -add-user=admin -add -sudo-nopasswd -allow-ssh
# 设置自动创建属性
sudo PasswordReset -add-user=newuser -auto-create::: important 安全设计 安全密钥支持两种输入方式:
- 交互输入(推荐):直接粘贴,不会回显到终端
- 从文件读取:文件仅允许一行内容,8-32字符,读取后自动删除源文件,避免密钥残留
密钥不允许包含管道符 |、重定向 <>、命令替换 ` 等特殊符号。 :::
-add
立即创建不存在的系统用户。配合 -add-user 使用。
-auto-create
设置用户配置属性:当系统用户被误删除后,下次密码重置时自动重建。
-sudo
启用sudo权限(需要密码)。将用户添加到 sudo/wheel 组,用户执行 sudo 时需要输入密码。
bash
# 启用sudo权限(需要密码)
sudo PasswordReset -add-user=admin -sudo -add-sudo-nopasswd
启用免密sudo,隐含启用 -sudo,允许免密执行 su - root(仅限 Linux)。
bash
# 免密sudo
sudo PasswordReset -add-user=admin -sudo-nopasswd -add-random-username
启用随机用户名模式(仅专业版及以上)。启用后忽略传入的用户名,改为从随机生成的 UserKey 中提取纯字母作为用户名(去除非字母字符 → 转小写 → 取前 32 字符)。
每次密码重置周期都会:
- 删除旧随机用户的系统账号
- 生成新的随机 UserKey 和用户名
- 创建新系统用户并设置密码
bash
# 随机用户名模式(服务安装时)
sudo PasswordReset -service-install -random-username
# 随机用户名模式(直接添加用户)
sudo PasswordReset -add-user=admin -random-username随机用户信息加密存储在 /etc/PasswordReset/.random_user,权限 0400,仅 root 可读。
-allow-ssh
允许 SSH 登录(默认禁止)。程序会自动将用户添加到 /etc/ssh/sshd_config 的 DenyUsers 列表。
-remove-user
删除用户配置。
bash
sudo PasswordReset -remove-user=admin-list-users
列出所有已配置的用户及其属性。
bash
sudo PasswordReset -list-users-list-system-users
列出当前系统中可登录的用户。
bash
sudo PasswordReset -list-system-users服务管理
-service-install
安装系统服务。
- Linux: 创建 systemd timer + oneshot 服务,由 timer 周期触发执行
- Windows: 创建 Windows SC 服务
安装时自动完成:
- 将二进制复制到
/usr/local/bin/PasswordReset(权限0700) - 创建软链接
/usr/sbin/PasswordReset→/usr/local/bin/PasswordReset - 注册 systemd 服务文件并启动
bash
# 基本安装
sudo ./PasswordReset_linux-X86_64 -service-install -hour=6
# 安装并开启监控上报
sudo ./PasswordReset_linux-X86_64 -service-install -hour=6 \
-report-server=http://monitor.example.com:12396
# 安装并开启上报(带 API Key)
sudo ./PasswordReset_linux-X86_64 -service-install -hour=6 \
-report-server=http://monitor.example.com:12396 \
-report-api-key=my-secret-key
# 安装后直接使用命令
sudo PasswordReset -service-install -hour=12安全加固
服务安装时自动应用最小权限原则:
- 二进制安装到
/usr/local/bin/PasswordReset,权限0700,仅 root 可执行 - 软链接
/usr/sbin/PasswordReset→/usr/local/bin/PasswordReset - 配置目录
/etc/PasswordReset/权限0700,仅 root 可访问 - 用户配置文件权限
0600,仅 root 可读写 - systemd 服务启用
ProtectSystem=strict、PrivateTmp=true、NoNewPrivileges=true
-service-uninstall
卸载系统服务。自动清理:systemd 服务/timer 文件、二进制、软链接、备份。
bash
sudo PasswordReset -service-uninstall-service-name
自定义服务名称(默认: PasswordReset)。
bash
sudo PasswordReset -service-install -service-name=MyService -hour=6-hour
设置密码重置间隔时间,单位为小时。
-report-server
设置上报服务器地址。安装服务时指定,客户端会在每次密码重置成功后自动上报状态。
bash
sudo PasswordReset -service-install -hour=6 \
-report-server=http://monitor.example.com:12396-report-api-key
设置上报服务器的 API Key(可选)。当监控服务端开启了 API Key 校验时,客户端必须携带正确的 Key 才能上报成功。
bash
sudo PasswordReset -service-install -hour=6 \
-report-server=http://monitor.example.com:12396 \
-report-api-key=my-secret-key监控面板的部署和 API Key 配置请参考 监控面板。
-print-service-cmd
打印当前系统的服务管理命令,不实际执行操作。
bash
sudo PasswordReset -print-service-cmd其他
-h / -help
显示帮助信息。
-v / -version
显示版本信息。