/ usr / bin / node:权限被拒绝

时间:2018-01-18 09:19:15

标签: node.js permissions executable nvm

在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用户访问节点?

2 个答案:

答案 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权限