1 Commits
Author SHA1 Message Date
Autumn-27 4d9580ebfa feat(ops): 新增管理员密码重置脚本 reset-password.sh
登录用户名固定 ARTEX,密码以 bcrypt 存于 settings 表 auth.password_hash。
脚本连库后用 pgcrypto 在库内生成 bcrypt(gen_salt('bf',10)),与后端
golang.org/x/crypto/bcrypt 校验兼容,写回该键,重置后无需重启。

- 两种部署:local(宿主机 psql)与 docker(compose/exec 在 postgres 容器内跑,
  因 compose 默认不暴露 5432)。
- 连接信息优先级:命令行 > --dsn/$ARTEX_PG_DSN > config.json 的 database.*
  (python3 解析,缺则 grep 后备)。
- 安全:新密码经环境变量 + psql \getenv 传入,不进 argv;SQL 用 :'newpw'
  自动转义防注入;DB 密码走 PGPASSWORD;docker 用 -e 名字继承、不带值。

验证: 临时库实测三条路径(显式 dsn / config.json / 含 ';DROP TABLE' 特殊
字符密码),写回的 hash 均能被 Go bcrypt 接受、错误密码被拒、注入未生效;
bash -n 通过。全程未触碰真实 artex 库。
2026-08-25 08:47:34 -04:00