2017-02-16 77 views
0

在我的笔记本电脑,Ubuntu的14.04,我创建了一个文件~/test.js,唯一的内容console.log("Hi, this is Dog.")。我运行脚本node test.js(节点v6.9.5),我得到所需的输出Hi, this is Dog.与特定用户运行的节点脚本

然后我尝试运行该脚本作为www-data用户。所以,我跑:

sudo -u www-data /usr/bin/node /home/me/test.js 

和...

Error: Cannot find module '/home/me/test.js'

我在做什么错?

我有相对和绝对路径试过,

sudo -u www-data sh -c "/usr/bin/node /home/me/test.js" 

改变了壳为www-data/etc/passwd/bin/bash/bin/sh,并且这些想法的所有组合。同样的错误。任何想法?

+0

最佳删除了Ubuntu,Linux和Node.js的标签,展示你的问题似乎主要是关于文件的权限,这是不特定于这些标签。 – Montmons

+0

我觉得喜欢它可能是关系到$ PATH或$ NODE_PATH或类似的东西。这就是为什么我通过这些标签是有道理的。 –

+0

好的,我现在看到了。 – Montmons

回答

0

声音对我说,他的权限设定,使得WWW最新的用户无权访问该文件。

登录时在创建该文件test.js的用户帐户,你可以试试:

chmod a+wx test.js 

然后再次运行sudo命令。

+0

它不起作用。我也尝试过使用'chmod 777 test.js',甚至是'chown www-data.www-data test.js'。同样的错误。 –

+0

你能尝试像'须藤 “PATH = $ PATH” -u www数据SH -c “在/ usr/bin中/节点/home/me/test.js”'? – Montmons

+0

同样的错误:'错误:无法找到模块“的/ home/ME/test.js'' –