【问题标题】:/usr/bin/node : Permission denied/usr/bin/node : 权限被拒绝
【发布时间】:2018-01-18 09:19:14
【问题描述】:

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

【问题讨论】:

    标签: node.js permissions executable nvm


    【解决方案1】:

    我建议您删除当前安装并改用 apt-get 安装。这是来自官方 Ubuntu 网站的教程:https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

    curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
    sudo apt-get install -y nodejs
    

    默认情况下,这种安装方式将使 root 以及所有其他用户都可以访问节点。

    另外,请记住:

    由于与另一个包冲突,来自 Ubuntu 存储库被称为 nodejs 而不是 node。保持这个 运行软件时请注意。

    这是另一个关于安装 nodejs 的好资源: https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04

    【讨论】:

      【解决方案2】:

      试试chmod 755 /usr/bin/node。这将为您系统上的所有用户授予读取和执行权限

      【讨论】:

      • /usr/bin/node 已经拥有777 权限,正如我的第二个脚本摘录所示
      猜你喜欢
      • 1970-01-01
      • 2020-08-30
      • 2021-05-21
      • 1970-01-01
      • 2017-08-02
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      相关资源
      最近更新 更多