在 Debian 上遇到 JS(Node.js / 前端构建 / 日志文件)权限问题,通常分为几种常见场景。下面按「最常见 → 最安全」给你一套排查与解决思路。
EACCES: permission denied, open '/var/log/app.log'root 装过依赖,普通用户跑不了# 假设你的服务用户是 www-data
sudo mkdir -p /var/log/myapp
sudo chown -R www-data:www-data /var/log/myapp
Node 启动时:
sudo -u www-data node app.js
npm ERR! code EACCES/usr/lib/node_modules 没权限sudo npm install -g xxx
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
journalctl -u myapp 没内容sudo journalctl -u myapp.service
确保服务文件里:
[Service]
User=www-data
Group=www-data
/app/logssudo chown -R 1000:1000 ./logs
(1000 通常是容器里的 node 用户)
或在 Dockerfile:
USER node
npm run build 报错写不了 .logsudo chown -R $USER:$USER .
rm -rf node_modules
npm install
whoami
id
ls -l /var/log
ps aux | grep node
Debian 上 JS 日志权限问题,90% 都是「用户不对 + 目录不属于运行用户」
黄金原则:
如果你能贴出:
我可以直接给你精准命令。