我正在嘗試配置我們的Node.js應用程序以與Amazon Elastic Beanstalk一起部署。AWS Elastic Beanstalk - 用戶權限問題
其實我在.ebextensions裏面做了一些配置文件來啓用Websockets,爲幾個模塊做yum安裝並安裝我們需要的一些定製軟件。
到目前爲止,App部署工作並且所有配置的軟件都由Beanstalk安裝。
我遇到的問題是nodejs用戶運行節點應用程序,沒有權限執行我們的beanstalk自定義配置安裝的命令行工具。
更具體:
該應用程序支持用戶文件上傳和上傳文件保存 在實例上一些臨時文件夾(就像它應該)。
然後該應用程式做一個命令執行到上傳 文件轉換到自定義的文件格式,什麼執行類似 /家庭/ EC2用戶/轉換器/ BIN將文件名輸出文件名。
在這一點上,我得到這個錯誤: {[錯誤:產卵EACCES]代碼: 'EACCES',錯誤號: 'EACCES',系統調用: '重生'}
總體應用程序需要幾個用於這些轉換任務的命令行工具可以正確運行。 其實他們都有同樣的問題。即使yum安裝的工具,比如Imagemagick,也不會被應用程序執行。
通過使用ec2用戶帳戶,我可以執行所有這些操作,所有文件都放在正確的系統路徑上,並且工作正常。所以所有的安裝似乎都是正確的。
我已經嘗試手動向用戶nodejs授予權限並執行chmod文件,但是這似乎並沒有在這裏產生任何效果。
大問題是..如何可以授予所需的權限的NodeJS用戶或作爲替代如何使用定義的用戶執行的node.js?
嗨,除了這個問題,即時通訊使用Beanstalk很不錯。我需要的所有東西都已經安裝完畢,並且使得縮放應用變得更加容易我瞭解到,Beanstalk的文檔缺乏這方面的知識,所以我仍然希望有人知道如何處理這個權限問題。 – user2458046 2014-11-03 22:53:21
沒有與nodejs用戶的shell訪問是有意義的。當您執行「sudo su nodejs」時,它不允許您使用該帳戶。 – user2458046 2014-11-03 22:57:39
在這方面缺乏文檔是因爲亞馬遜不希望你搞亂權限。但這取決於你;我只能給我的建議:)是的,如果你看看我在那裏做什麼,在一個簡單的腳本中運行一個簡單的'exec'命令就會失敗。所以,如果你真的想解決這個問題(我不推薦),你可以嘗試改變缺省shell爲bash:'sudo chsh -s/bin/bash nodejs'。 – mattr 2014-11-03 23:02:22