在 Ubuntu 上设置 Node.js 相关权限,一般分几种常见场景。下面按「最常见问题」给你说明:
EACCES: permission denied
npm ERR! code EACCES
不要用 sudo 装全局包,改用用户目录:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
然后把下面加到 ~/.bashrc 或 ~/.zshrc:
export PATH=~/.npm-global/bin:$PATH
生效:
source ~/.bashrc
之后正常用:
npm install -g npm
sudo chown -R $USER:$USER /你的项目路径
例如:
sudo chown -R ubuntu:ubuntu /home/ubuntu/app
chmod -R 755 /home/ubuntu/app
Node 直接监听 80 端口会失败:
Error: listen EACCES: permission denied 0.0.0.0:80
用反向代理(推荐)
示例(Nginx):
location / {
proxy_pass http://127.0.0.1:3000;
}
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 20
✅ 完全不需要 sudo
✅ 不会污染系统权限
修复 npm 权限:
sudo chown -R $USER ~/.npm
sudo chown -R $USER $(npm config get prefix)/lib/node_modules
✅ 用 nvm
✅ 不用 sudo npm
✅ 用 Nginx 代理端口
✅ 项目目录归当前用户
如果你能说具体场景(比如:npm 报错 / 起服务 / Docker / 服务器部署),我可以给你更精确的命令。