Skip to content

📖 命令参考

密钥管理

-init-key

初始化用户安全key。从 PASSWORD_RESET_SECRET_KEY 环境变量读取安全key,使用内置私钥加密后写入 /etc/PasswordReset/.secret_key.enc

bash
export PASSWORD_RESET_SECRET_KEY="mySecureKey@2025"
sudo ./PasswordReset -init-key

-reinit-key

重新初始化安全key。与 -init-key 的区别在于会覆盖已存在的 key 文件。

bash
export PASSWORD_RESET_SECRET_KEY="newSecureKey@2025"
sudo ./PasswordReset -reinit-key

WARNING

重新初始化后,使用旧 key 加密的密码组件将无法解密。需要重新添加所有用户。

加密/解密

-encrypt

加密密码组件。输入明文密码组件,输出 ENC:YYYYMMDD:base64... 格式的加密串。

bash
# 使用 -component 参数
sudo ./PasswordReset -encrypt -component="MySuffix"

# 使用环境变量(推荐)
export PASSWORD_RESET_PWD="MySuffix"
sudo ./PasswordReset -encrypt

# 使用密码文件
echo -n "MySuffix" > /tmp/component.txt
sudo ./PasswordReset -encrypt -password-file=/tmp/component.txt

-component

配合 -encrypt 使用,指定密码组件。

bash
sudo ./PasswordReset -encrypt -component="CustomSuffix@2025"

-decrypt

查询当前所有用户的实际密码。需要已初始化的安全key和配置文件。

bash
sudo ./PasswordReset -decrypt
# 输出格式:
# admin: 20260526MySuffix
# user2: 20260526AnotherSuffix

用户管理

-add-user

添加或更新用户。必须配合 -password-filePASSWORD_RESET_PWD 环境变量使用。

bash
# 使用环境变量
export PASSWORD_RESET_PWD="MySuffix"
sudo ./PasswordReset -add-user=admin

# 使用密码文件(推荐)
sudo ./PasswordReset -add-user=admin -password-file=/tmp/pwd.txt

# 添加并立即创建系统用户
sudo ./PasswordReset -add-user=newuser -password-file=/tmp/pwd.txt -add

# 设置自动创建属性
sudo ./PasswordReset -add-user=newuser -password-file=/tmp/pwd.txt -auto-create

# 传入已加密的 ENC 串
sudo ./PasswordReset -add-user=admin -password-file=/tmp/enc_pwd.txt

密码内容支持两种格式:

  • 明文组件:程序自动使用当前日期派生key加密后存储
  • ENC 串:直接存储,用于复用已有加密结果

-password-file

从文件读取密码内容(明文组件或 ENC 加密串)。推荐使用此方式而非环境变量,避免 shell 历史记录。

-add

立即创建不存在的系统用户。配合 -add-user 使用。

-auto-create

设置用户配置属性:当系统用户被误删除后,下次密码重置时自动重建。

-sudo-nopasswd

设置用户配置属性:允许免密sudo执行 su - root(仅限 Linux)。

也可通过环境变量 PASSWORD_RESET_SUDO_NOPASSWD=1 设置。

-allow-ssh

允许 SSH 登录(默认禁止)。程序会自动将用户添加到 /etc/ssh/sshd_configDenyUsers 列表。

也可通过环境变量 PASSWORD_RESET_ALLOW_SSH=1 设置。

-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 服务
bash
# 默认间隔 12 小时
sudo ./PasswordReset -service-install

# 自定义间隔
sudo ./PasswordReset -service-install -hour=6

-service-uninstall

卸载系统服务。

bash
sudo ./PasswordReset -service-uninstall

-service-name

自定义服务名称(默认: PasswordReset)。

bash
sudo ./PasswordReset -service-install -service-name=MyService -hour=6

-hour

设置密码重置间隔时间,单位为小时。

打印当前系统的服务管理命令,不实际执行操作。

bash
sudo ./PasswordReset -print-service-cmd

其他

-h / -help

显示帮助信息。

-v / -version

显示版本信息。

环境变量参考

变量名用途配合命令
PASSWORD_RESET_SECRET_KEY用户安全key-init-key, -reinit-key
PASSWORD_RESET_PWD密码明文或ENC串-add-user, -encrypt
PASSWORD_RESET_SUDO_NOPASSWD免密sudo-add-user
PASSWORD_RESET_ALLOW_SSH允许SSH-add-user

基于 MIT 许可发布