2017-02-16 39 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'' –