在 Ubuntu 下“Node.js 权限”通常涉及几种不同场景,下面按常见情况分别说明,你可以对号入座。
报错类似:
EACCES: permission denied
不要直接用 sudo 装全局包,而是把 npm 全局目录改到用户目录:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
然后把下面这行加到 ~/.bashrc 或 ~/.zshrc:
export PATH=~/.npm-global/bin:$PATH
使配置生效:
source ~/.bashrc
之后正常安装:
npm install -g xxx
sudo npm install -g xxx
⚠️ 缺点:可能产生权限混乱,后续容易再报错。
如果你是自己编译或指定路径安装的 Node:
sudo chown -R $USER:$USER /usr/local/lib/node_modules
sudo chown -R $USER:$USER /usr/local/bin/node
或只改权限:
sudo chmod -R 755 /usr/local/lib/node_modules
报错:
Error: listen EACCES: permission denied 80
sudo node app.js
location / {
proxy_pass http://localhost:3000;
}
sudo apt install libcap2-bin
sudo setcap cap_net_bind_service=+ep $(which node)
这样 Node 可直接监听 80。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install --lts
✅ 不需要 sudo
✅ 不会有权限问题
你可以告诉我:
npm 还是 node 报错我可以直接给你精确命令。