【问题标题】:Elastic beanstalk running Node.js script as root以 root 身份运行 Node.js 脚本的 Elastic beanstalk
【发布时间】:2016-06-19 16:51:59
【问题描述】:

我有一个 node.js 脚本/应用程序,我试图在 AWS Elastic beanstalk node.js 服务上运行。

使用 sudo 启动脚本后,该脚本在本地计算机上运行良好。因此,在将其移至 AWS 弹性 beanstalk 环境时,它似乎没有以 root 权限运行。

有没有办法设置 node.js 脚本以在弹性 beanstalk 服务器上使用 sudo 或 root 权限启动?

【问题讨论】:

  • 真的有必要吗?使用 sudo 启动?
  • 我同意安德烈。不要以 sudo 身份运行您的应用程序。应用程序在做什么?我投了反对票,因为这是不好的做法。
  • @Clarkie - 我是 node.js 的新手,正在尝试利用一些已经可用的代码,所以不知道为什么它需要以 root 身份运行。我将重新检查代码并尝试了解是否有更好的方法。知道这是不好的做法是很好的反馈。如果您还可以详细说明为什么您认为这是不好的做法,那就太好了?
  • root 用户(或 sudo)拥有对服务器的完全控制权。通过以 root 身份运行您的应用程序,您可以完全控制它;想象一个非常讨厌的人控制了你的应用程序。例如。您的应用程序允许上传文件,并且有人上传了一些带有一些讨厌的代码的 js 文件......

标签: node.js amazon-web-services amazon-elastic-beanstalk


【解决方案1】:

这是一个非常糟糕的做法,所以我从未尝试过这样做。

如果您没有其他解决方案,请尝试更改 package.json 中的启动脚本,如下所示:

"scripts": {
    "start": "sudo node index.js"
 }

您也应该将 nodejs 用户添加为 sudo。在.ebextensions 文件夹(位于应用根目录)中创建一个文件 rootaccess.config,内容如下:

container_commands:
  01_enable_rootaccess:
    command: echo Defaults:root \!requiretty >> /etc/sudoers

请记住,您应该使用空格而不是制表符来缩进这个 .config 文件

【讨论】:

  • 非常感谢,经过这么多小时终于找到了这个......
猜你喜欢
  • 2021-02-28
  • 2014-04-29
  • 2023-03-16
  • 2014-05-21
  • 1970-01-01
  • 1970-01-01
  • 2011-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多