在Ubuntu 16.04上,我使用NVM安装了NodeJS v8.9.3。我将安装作为root
运行,因此节点安装在此处:
/root/.nvm/versions/node/v8.9.3/bin/node
为了让非root用户可以访问,我在/usr/bin/node
创建了一个软链接:
lrwxrwxrwx 1 root root 40 янв 18 11:58 node -> /root/.nvm/versions/node/v8.9.3/bin/node
节点文件本身具有所有用户的可执行权限:
-rwxrwxr-x 1 500 500 35200878 дек 8 17:09 /root/.nvm/versions/node/v8.9.3/bin/node
当我以root身份访问节点时,一切都完美无缺:
# node -v && which node
v8.9.3
/root/.nvm/versions/node/v8.9.3/bin/node
任何以非root用户身份访问它的尝试都会失败:
$ node -v
The program 'node' is currently not installed. You can install it by typing:
sudo apt install nodejs-legacy
$ /usr/bin/node -v
bash: /usr/bin/node: Permission denied
我需要做哪些更改才能允许非root用户访问节点?
答案 0 :(得分:0)
我建议您删除当前安装并使用apt-get进行安装。这是来自Ubuntu官方网站的教程:https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions
for(x in qq){
for(y in bmu){
if(qq[x].name.toLowerCase() == bmu[y].toLowerCase())
{
console.log("Found: "+bmu[y]);
}
else if(qq[x].series.length > 0)
{
for(z in qq[x].series)
{
if(qq[x].series[z].title.toLowerCase() == bmu[y].toLowerCase())
{
console.log("Found: "+bmu[y]);
}
}
}
}
}
这种安装方式将默认为root用户和所有其他用户提供节点。
另外,请记住:
由于与另一个包冲突,可执行文件来自 Ubuntu存储库称为 nodejs ,而不是节点。保持这个 介意你正在运行软件。
这是安装nodejs的另一个好资源: https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04
答案 1 :(得分:-1)
试试chmod 755 /usr/bin/node
。这将给予阅读和阅读对系统上的所有用户执行exec权限