小编Pat*_*k M的帖子

为什么使用 node-dev 拒绝 npm start 的权限?

我正在尝试使用低权限用户启动 node.js 应用程序。我知道的所有文件都归正确的用户所有,并且权限设置得相当好。我正在尝试使用脚本文件来执行此操作。我用这个命令调用脚本

sudo su - nodejs ./start-apps.sh
Run Code Online (Sandbox Code Playgroud)

shell 脚本运行此命令以启动应用程序

cd "/home/nodejs/my-app"
npm start
Run Code Online (Sandbox Code Playgroud)

npm start记录在这里。它基本上从 package.json 文件中提取要使用的命令,在我们的应用程序中看起来像这样:

// snip
"scripts": {
    "start": "node-dev app"
  },
Run Code Online (Sandbox Code Playgroud)

它吐出错误:

> my-app@0.1.0-build.100 start /home/nodejs/my-app
> node-dev app

sh: 1: node-dev: Permission denied

npm ERR! spicoli-authorization@0.1.0-build.100 start: `node-dev app`
npm ERR! Exit status 126
Run Code Online (Sandbox Code Playgroud)

sh似乎是说它正在报告来自 shell 命令的错误。我不认为问题出在访问npm命令本身,因为如果是这样,权限被拒绝将在 npm 命令的任何输出之前引发。但只是为了排除它,这里是 npm 命令本身的权限:

$ sudo find / ! \( -type d \) -name npm -exec ls -lah {} \; …
Run Code Online (Sandbox Code Playgroud)

permissions executable symlink node.js npm

10
推荐指数
1
解决办法
3万
查看次数

标签 统计

executable ×1

node.js ×1

npm ×1

permissions ×1

symlink ×1