gpt4 book ai didi

node.js - AWS Elastic Beanstalk - 用户权限问题

转载 作者:搜寻专家 更新时间:2023-10-31 22:45:37 25 4
gpt4 key购买 nike

我正在尝试配置我们的 Node.js 应用程序以使用 Amazon Elastic Beanstalk 进行部署。

实际上我在 .ebextensions 中做了一些配置文件来启用 Websockets,为几个模块执行 yum 安装并安装我们需要的一些自定义软件。

到目前为止,应用程序部署正常,所有配置的软件都由 Beanstalk 安装。

我遇到的问题是运行 Node 应用程序的 nodejs 用户没有权限执行我们的 beantalk 自定义配置安装的命令行工具。

更具体地说:

  1. 应用支持用户上传文件并保存上传的文件到实例上的某个临时文件夹(正常工作)。

  2. 然后应用执行命令行来转换上传的文件转换为自定义文件格式,正在执行类似/home/ec2-user/converter/bin convert filename 输出文件名。

此时我得到这个错误:{ [错误:生成 EACCES] 代码:'EACCES',errno:'EACCES',系统调用:'spawn' }

总的来说,该应用程序需要多个命令行工具才能正确运行此类转换任务。其实他们都有同样的问题。即使是 yum 安装的工具,如 Imagemagick,也不会被应用程序执行。

通过使用 ec2-user 帐户,我可以手动执行所有这些操作,所有文件都位于正确的系统路径中,并且工作正常。所以所有安装似乎都可以正常工作。

我已经尝试手动向用户 nodejs 授予权限并对文件进行 chmod,但这似乎在这里没有任何效果。

最大的问题是..我怎样才能向 nodejs 用户授予所需的权限,或者如何使用定义的用户来执行 node.js?

最佳答案

我认为 nodejs 用户没有使用 shell 的权限:

[ec2-user@host ~]$ cat /etc/passwd
....
nodejs:x:497:497::/tmp:/sbin/nologin

According to the docs, node runs the command in a shell and returns it .

我也试过:

[ec2-user@host ~]$ pwd
/home/ec2-user
[ec2-user@host ~]$ cat test.js
#!/opt/elasticbeanstalk/node-install/node-v0.10.31-linux-x64/bin/node
require('child_process').exec('/usr/bin/whoami', function (err, data) {
console.log(data);
});
[ec2-user@host ~]$ ls -l
total 4
-rwxrwxrwx 1 ec2-user ec2-user 169 Nov 3 21:49 test.js
[ec2-user@host ~]$ sudo -u nodejs /home/ec2-user/test.js
sudo: unable to execute /home/ec2-user/test.js: Permission denied

我会说这是有效的,我对此感到困惑(也许有人可以插话澄清一下):

$ sudo -u nodejs /usr/bin/whoami
nodejs

但是,作为外部观察者,Beanstalk 似乎更不适合您。一般来说,Beanstalk 是一种不干涉的完全托管抽象设计,乱搞文件系统权限和用户权限就超出了这些界限。

顺便说一句,也许你想 consider moving to OpsWorks反而。来自 http://aws.amazon.com/opsworks/faqs/ :

Q: How is AWS OpsWorks different than AWS Elastic Beanstalk?

AWS OpsWorks and AWS Elastic Beanstalk both focus on operations, but with very different orientations. AWS Elastic Beanstalk seeks to automatically provide key operations activities so that developers can maximize the time they spend on development and minimize the time they spend on operations. In contrast, AWS OpsWorks delivers integrated experiences for IT administrators and ops-minded developers who want a high degree of productivity and control over operations.

关于node.js - AWS Elastic Beanstalk - 用户权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26717948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com