权限修复脚本使用说明
位置:./fix-perms.sh(项目根目录)
适用范围:macOS 本机环境下对 web 与 api 目录进行常见权限/属性修复。
脚本作用
- 清理下载隔离属性:
com.apple.quarantine(避免“需要授权”提示)。 - 清理不可更改标志:
uchg(防止无法修改/删除)。 - 统一所有者为当前用户与组:
$(id -un):$(id -gn)。 - 统一权限位:
u+rwX,go+rX。 - 确保启动脚本
web/start-dev.sh具备执行位。 - 最终输出
web、api的权限与所有者供确认。
快速使用
在项目根目录执行(推荐):
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完成后验证
- 查看最终权限与所有者:
bash
stat -f "%Sp %Su:%Sg %N" /Users/mzy/docker/dnmp/www/stooland/web /Users/mzy/docker/dnmp/www/stooland/api- 在
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,如仍提示,请在本机终端执行并将输出提供给我们进一步定位。