在 CentOS 上“改 Node.js 权限”通常分几种常见场景,你看看你属于哪一种,我分别说:
错误类似:
EACCES: permission denied
给当前用户单独建一个 npm 全局目录:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
然后加到环境变量:
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
这样 不用 sudo,也不碰系统权限。
如果你是用 sudo npm install -g 装的,全局包在:
/usr/lib/node_modules
可改权限(有风险):
sudo chown -R $USER:$USER /usr/lib/node_modules
sudo chown -R $USER:$USER /usr/bin/node
sudo chown -R $USER:$USER /usr/bin/npm
⚠️ 不建议长期这样用。
比如:
Error: EACCES: permission denied, open '/var/www/xxx'
改项目目录属主:
sudo chown -R youruser:youruser /path/to/project
或改权限:
chmod -R 755 /path/to/project
完全避免权限问题:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install --lts
nvm 装在用户目录,永远不需要 sudo。
Node 不能直接绑 80,需要:
sudo setcap cap_net_bind_service=+ep $(which node)
或前面加 nginx 反代。
如果你能说具体点:
我可以直接给你精确命令。