fix: 口令文件的出厂默认值不再指向仓库内的文件

BackupConfig.psd1 原来写的是 PasswordFile = 'baknret.key' —— 相对路径,解析到仓库根,
而根目录真的有这个文件(实测它在服役:用它跑 7z t 得到 0,manifest 里 5 个条目标着
encrypted = true)。也就是说"出厂默认值"在教人把口令放进版本库,而同一份配置的注释却写着
"文件必须在仓库之外"。

现在默认留空,并把注释改成明确的约束:口令只能来自 -Password / $env:BAKNRET_PASSWORD /
仓库之外的 PasswordFile / 交互式询问(仅交互式会话)。取不到口令时加密条目**明确失败**,
绝不退化成明文归档 —— 这条行为没变,也没有放宽。

配套:.gitignore 早已加上 *.key;密钥文件本身怎么搬是使用者的动作(我不会自动搬你的
密钥),迁移命令见 README 与本次改造的收尾说明。
This commit is contained in:
Shuery committed 2026-09-27 09:34:43 +08:00
1 parent 2ad7987ffe
commit 102a3e038d
1 file changed
+3 -2
+3 -2
View File
@@ -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
}