首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >/usr/bin/node :权限被拒绝

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

Stack Overflow用户
提问于 2018-01-18 17:19:15
回答 2查看 3.2K关注 0票数 2

在Ubuntu16.04上,我使用NVM安装了NodeJS v8.9.3。我以root身份运行安装,因此节点安装在以下位置:

代码语言:javascript
复制
/root/.nvm/versions/node/v8.9.3/bin/node

为了让非根用户能够访问它,我在/usr/bin/node创建了一个软链接

代码语言:javascript
复制
lrwxrwxrwx 1 root root      40 янв 18 11:58 node -> /root/.nvm/versions/node/v8.9.3/bin/node

节点文件本身具有所有用户的可执行权限:

代码语言:javascript
复制
-rwxrwxr-x 1 500 500 35200878 дек  8 17:09 /root/.nvm/versions/node/v8.9.3/bin/node

当我以root身份访问node时,一切都运行得很好:

代码语言:javascript
复制
# node -v && which node
v8.9.3
/root/.nvm/versions/node/v8.9.3/bin/node

任何以非root用户身份访问它的尝试都会失败:

代码语言:javascript
复制
$ 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用户访问节点?

EN

回答 2

Stack Overflow用户

发布于 2018-01-18 17:48:16

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

代码语言:javascript
复制
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

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

另外,请记住:

由于与其他包冲突,Ubuntu存储库中的可执行文件被称为nodejs,而不是节点。在运行软件时,请牢记这一点。

下面是关于安装nodejs的另一个很好的参考资料:https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-16-04

票数 0
EN

Stack Overflow用户

发布于 2018-01-18 17:25:09

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48317626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档