From 102a3e038de36557cb6cbe8ff04639fa0eaedb2e Mon Sep 17 00:00:00 2001 From: Shuery <2463253700@qq.com> Date: Sun, 27 Sep 2026 09:34:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8F=A3=E4=BB=A4=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E5=87=BA=E5=8E=82=E9=BB=98=E8=AE=A4=E5=80=BC=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E6=8C=87=E5=90=91=E4=BB=93=E5=BA=93=E5=86=85=E7=9A=84?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BackupConfig.psd1 原来写的是 PasswordFile = 'baknret.key' —— 相对路径,解析到仓库根, 而根目录真的有这个文件(实测它在服役:用它跑 7z t 得到 0,manifest 里 5 个条目标着 encrypted = true)。也就是说"出厂默认值"在教人把口令放进版本库,而同一份配置的注释却写着 "文件必须在仓库之外"。 现在默认留空,并把注释改成明确的约束:口令只能来自 -Password / $env:BAKNRET_PASSWORD / 仓库之外的 PasswordFile / 交互式询问(仅交互式会话)。取不到口令时加密条目**明确失败**, 绝不退化成明文归档 —— 这条行为没变,也没有放宽。 配套:.gitignore 早已加上 *.key;密钥文件本身怎么搬是使用者的动作(我不会自动搬你的 密钥),迁移命令见 README 与本次改造的收尾说明。 --- BackupConfig.psd1 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/BackupConfig.psd1 b/BackupConfig.psd1 index 550c075..0d736c4 100644 --- a/BackupConfig.psd1 +++ b/BackupConfig.psd1 @@ -54,14 +54,15 @@ # 口令本身按以下优先级获取(见 README「加密」): # 1. -Password 命令行参数 # 2. $env:BAKNRET_PASSWORD - # 3. PasswordFile 指向的文件首行(文件必须在仓库之外) + # 3. PasswordFile 指向的文件首行 —— 必须指向仓库**之外**的文件; + # 出厂默认值留空:默认值指向仓库里的某个文件,等于鼓励把口令放进版本库 # 4. 交互式询问(仅交互式会话;计划任务里不会停下来等输入) # 全都拿不到时该条目明确失败,绝不退化成明文归档。 # # 注意 7z 只接受命令行口令,口令在本机进程列表里短暂可见,这是 7z 本身的限制。 Encryption = @{ Enabled = $false - PasswordFile = 'baknret.key' + PasswordFile = '' EncryptHeaders = $true }