在 Linux 系统中,JS(JavaScript)文件本身并不特殊,权限设置方式与普通文本文件一致,是否可执行取决于文件内容、解释器以及是否作为脚本直接运行。下面分情况说明:
如果 JS 文件只是被 Node.js 读取执行(例如 node app.js),不需要可执行权限。
chmod 644 app.js
说明:
644:rw-r--r--如果希望像下面这样直接运行:
./app.js
第一行必须是:
#!/usr/bin/env node
或(不推荐硬编码路径):
#!/usr/local/bin/node
chmod +x app.js
或明确指定:
chmod 755 app.js
说明:
755:rwxr-xr-x| 文件类型 | 推荐权限 | 原因 |
|---|---|---|
| JS 源码 | 644 |
不需要执行 |
| CLI 工具 | 755 |
需要直接运行 |
| 配置文件 | 600 / 640 |
防止泄露 |
node_modules |
755 |
目录需要进入 |
目录必须有执行权限才能进入:
chmod 755 dir
常见错误:
chmod 644 dir # ❌ 进不去
JS 文件通常应属于运行它的用户,比如:
chown user:user app.js
Web 项目示例(Nginx + Node):
chown -R node:node /var/www/app
如果是 前端 JS(被浏览器加载):
chmod 644 *.js
chmod 755 目录
node app.js 可以,但 ./app.js 不行?因为:
node app.js:Node 读取文件./app.js:需要可执行权限 + shebang不会,除非:
# 普通 JS 文件
chmod 644 app.js
# 可执行脚本
chmod 755 app.js # 同时加 shebang
# 目录
chmod 755 dir
如果你愿意,可以告诉我:
我可以给你一套 生产环境权限规范。