refactor(core): ♻️ 移除 brew 脚本中的 sudo 密码注入并重构代码
移除 Homebrew 升级脚本中硬编码的 sudo 密码处理逻辑,改为依赖用户预先认证(sudo -v),提高安全性并简化 PTY 转发逻辑。同步更新文档说明及 sntp 脚本的类型校验。 - 脚本: 移除 SUDO_PWD 相关变量及自动注入逻辑,升级版本至 v5.3 - 文档: 更新 README 建议使用 sudo -v 刷新凭据,重写交互说明 - 工具: 在 sntp-rename.js 中增加对非字符串名称的防御性校验
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
- 自动检查并安装 `buo/cask-upgrade`,用于提供 `brew cu`。
|
||||
- 使用 `brew upgrade --formula` 升级命令行 Formula。
|
||||
- 使用 `brew cu -yaq` 升级 Cask GUI 应用。
|
||||
- 使用 Python PTY 包装 `brew cu`,用于处理 sudo 密码输入和终端尺寸问题。
|
||||
- 使用 Python PTY 包装 `brew cu`,用于处理交互输入转发和终端尺寸问题。
|
||||
- 执行 `brew cleanup --prune=all` 清理旧版本与缓存。
|
||||
|
||||
## 依赖
|
||||
@@ -57,19 +57,16 @@ HB_TERMINAL_WIDTH=130 ./brew-upgrade-manager.sh
|
||||
|
||||
优先级为:命令行 `--width` 高于 `HB_TERMINAL_WIDTH`,再高于自动检测值。
|
||||
|
||||
## sudo 密码
|
||||
## sudo 认证
|
||||
|
||||
脚本中有一个 `SUDO_PWD` 占位变量:
|
||||
脚本不会保存、传递或自动注入 sudo 密码。如果你的 `brew cu` 流程会触发 sudo,建议在运行脚本前先刷新 sudo 凭据:
|
||||
|
||||
```bash
|
||||
SUDO_PWD=""
|
||||
sudo -v
|
||||
./brew-upgrade-manager.sh
|
||||
```
|
||||
|
||||
如果你的 `brew cu` 流程会触发 sudo,脚本会把这个变量传给内置 Python PTY 逻辑。请注意:
|
||||
|
||||
- 不要把真实密码提交到仓库。
|
||||
- 更建议在私有副本、本机自动化环境或临时运行前填写。
|
||||
- 如果不需要自动输入 sudo,保持空字符串即可。
|
||||
如果 sudo 凭据过期,脚本内的 PTY 逻辑只会把你的键盘输入转发给子进程,不会嗅探 `Password:` 提示,也不会替你填写密码。
|
||||
|
||||
## 执行流程
|
||||
|
||||
@@ -102,7 +99,7 @@ brew tap buo/cask-upgrade
|
||||
|
||||
### sudo 卡住
|
||||
|
||||
确认 `SUDO_PWD` 是否为空,以及当前命令是否确实需要 sudo。出于安全考虑,不建议把密码长期保存在仓库文件里。
|
||||
先在交互终端运行 `sudo -v`,确认 sudo 凭据有效后再执行脚本。非交互环境中请避免依赖脚本内输入密码。
|
||||
|
||||
## 注意事项
|
||||
|
||||
|
||||
Reference in New Issue
Block a user