Skip to content

权限修复脚本使用说明

位置:./fix-perms.sh(项目根目录)

适用范围:macOS 本机环境下对 webapi 目录进行常见权限/属性修复。

脚本作用

  • 清理下载隔离属性:com.apple.quarantine(避免“需要授权”提示)。
  • 清理不可更改标志:uchg(防止无法修改/删除)。
  • 统一所有者为当前用户与组:$(id -un):$(id -gn)
  • 统一权限位:u+rwX,go+rX
  • 确保启动脚本 web/start-dev.sh 具备执行位。
  • 最终输出 webapi 的权限与所有者供确认。

快速使用

在项目根目录执行(推荐):

bash
bash ./fix-perms.sh

若遇到 chown 或权限不足提示,请使用:

bash
sudo bash ./fix-perms.sh

可选参数(环境变量)

可通过环境变量覆盖目标目录:

bash
BASE_DIR=/Users/mzy/docker/dnmp/www/stooland \
WEB_DIR=$BASE_DIR/web \
API_DIR=$BASE_DIR/api \
bash ./fix-perms.sh

完成后验证

  1. 查看最终权限与所有者:
bash
stat -f "%Sp %Su:%Sg %N" /Users/mzy/docker/dnmp/www/stooland/web /Users/mzy/docker/dnmp/www/stooland/api
  1. api 目录测试读写(应成功):
bash
echo ok > /Users/mzy/docker/dnmp/www/stooland/api/.perm_check_api3.tmp && rm /Users/mzy/docker/dnmp/www/stooland/api/.perm_check_api3.tmp

说明:web 目录的删除临时文件若在 IDE 中提示“path not in whitelist”,属于 IDE 的安全限制,并非系统权限问题。请在本机终端执行上述命令更准确验证。

常见问题

  • 容器/脚手架以 root 写入宿主卷:会导致所有者变为 root:wheel。脚本已尝试修复,若仍提示权限不足,请用 sudo 运行。
  • 下载隔离属性导致“需要授权”弹窗:脚本已清理 com.apple.quarantine,如仍提示,请在本机终端执行并将输出提供给我们进一步定位。