前端构建产物传输后权限不自动继承,必须显式保留或修复:tar需加-p参数打包解压,zip不推荐;通用方案是用find批量设目录755、文件644;ci/cd中应固化该步骤,并确保属主与nginx用户(如www-data)匹配。

前端构建产物在打包传输后不会自动保持原有权限特征,Linux 系统中文件权限不随内容复制或解压自动继承,必须显式设置或保留。
打包阶段保留权限(适用于 tar/zip 传输)
若通过 tar 打包构建产物(如 dist 目录),需使用 --preserve-permissions(或简写 -p)参数,否则默认解压后权限会被重置为系统 umask 值(通常是 644/755 以外的值):
-
tar -cpvf dist.tar dist/——-p保证所有文件与目录权限、属主、ACL 等元信息完整保留 - 接收端解压时也需加
-p:tar -xpvf dist.tar - 注意:普通 zip 工具(如
zip/unzip)默认不保存 Linux 权限;如必须用 zip,需配合zip -X和unzip -X尝试保留扩展属性,但兼容性差,不推荐生产环境使用
传输后批量修复权限(通用稳妥方案)
无论用何种方式上传(FTP、SCP、rsync、手动拖入),只要 nginx 报 403,大概率是权限不匹配。标准 Web 服务要求:
PigX UI Pro 前端开发指南 - Vue 3 + TypeScript + Element Plus。当用户提到 PigX UI、PigX 前端、lgb-mgui 项目、Vue 3 企业级后台开发、Element Plus 后台开发时使用此技能。
- 所有目录:权限 755(
rwxr-xr-x),确保 nginx 用户可进入 - 所有静态文件(.html/.js/.css/.png 等):权限 644(
rw-r--r--),确保 nginx 用户可读 - 执行以下两条命令即可批量修正:
find dist/ -type d -exec chmod 755 {} ;find dist/ -type f -exec chmod 644 {} ;
构建流程中固化权限策略
避免每次手动修,可在构建脚本末尾自动加固:
- 在
package.json的"build"脚本后追加权限修复命令(Linux/macOS): "build": "vue-cli-service build && find dist/ -type d -exec chmod 755 {} \; && find dist/ -type f -exec chmod 644 {} \;"- CI/CD 流水线(如 GitHub Actions、Jenkins)中,在
npm run build后直接运行上述 find 命令,确保交付物权限始终合规
nginx 用户与文件属主需匹配
即使权限数字正确,若文件属主不是 nginx 运行用户(常见为 www-data 或 nginx),仍可能 403:
- 查 nginx 用户:
ps aux | grep nginx | grep master,看 USER 列 - 若属主不符,可改属主:
sudo chown -R www-data:www-data dist/ - 更安全做法:部署用户与 nginx 用户同组,并赋予组读/执行权限(如
chmod -R 750 dist/+chgrp www-data dist/)
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!









