我已经在 Ubuntu 16.04.3 的 Persistent LiveUSB 安装中安装了 Node.js。我已在以下位置为其创建了一个符号链接:/usr/bin/node
以 root 身份,我可以看到符号链接是健康的。我甚至让节点文件对所有用户开放:
$ ls -al /usr/bin/node
lrwxrwxrwx 1 root root 40 Nov 16 20:48 /usr/bin/node -> /root/.nvm/versions/node/v8.8.1/bin/node
$ /usr/bin/node -v
v8.8.1
$ chmod 777 /root/.nvm/versions/node/v8.8.1/bin/node
$ ls -al /root/.nvm/versions/node/v8.8.1/bin/node
-rwxrwxrwx 1 500 500 35100284 Oct 25 22:51
但是,标准ubuntu
用户的访问权限似乎受到限制/usr/bin
:
ubuntu@ubuntu:~$ echo $PATH
/home/ubuntu/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
ubuntu@ubuntu:~$ /usr/bin/node -v
bash: /usr/bin/node: Permission denied
当我使用时ubuntu@ubuntu:~$ ls -al /usr/bin/node
,链接显示为红色,好像它坏了一样。
这是持久 LiveUSB 安装的限制吗?或者我可以进行更改,让我的 ubuntu 用户能够访问此节点安装?
答案1
授予文件节点的访问权限是不够的。用户 ubuntu 必须拥有指向节点的所有目录的“x”权限,即
/root /root/.nvm /root/.nvm/versions /root/.nvm/versions/node /root/.nvm/versions/node/v8.8.1 /root/.nvm/versions/node/v8.8.1/bin