ElasticBeanstalk - 将ec2-user添加到另一个组

时间:2015-09-28 07:16:43

标签: linux amazon-web-services amazon-ec2 elastic-beanstalk

我有一个需要在我的EC2实例上的some%26code%26%26下运行的cron作业,它需要能够写入我的Web应用程序的标准日志文件。但是,日志文件归ec2-user所有(按照正常情况)。

我已成功更改了日志文件的权限,以便所有者和组webapp都可以访问它们。但是,当我尝试将webapp:webapp添加到ec2-user组时,我遇到了麻烦。

我可以使用webapp在SSH中做得很好但是当我尝试通过EB 容器命令添加此命令时,我收到错误消息sudo usermod -a -G webapp ec2-user。在没有sudo的情况下运行命令会给我you must have a tty to run sudo

任何人都知道有任何其他方法可以通过Elastic Beanstalk部署配置将/bin/sh: usermod: command not found添加到ec2-user组。

3 个答案:

答案 0 :(得分:6)

不确定sudoers文件的问题,但通常更简洁的方法将用户添加到组(而不是手动执行命令)是使用users文件的.ebextensions部分。例如,在.ebextensions/something.config

users:
  ec2-user:
    groups:
      - webapp

答案 1 :(得分:0)

您不应该使用sudo,部署脚本由root运行。

此外,这是一个服务器命令,在命令部分而不是容器命令部分执行。

commands:
  01_set_user_role:
    command: "usermod -a -G webapp ec2-user"

答案 2 :(得分:0)

You need to run this command from a container_command before executing any commands with sudo:

echo Defaults:root \!requiretty >> /etc/sudoers

在上下文中(在.ebextensions / yourconf.config中)

container_commands:
  001-enableroot:
    command: echo Defaults:root \!requiretty >> /etc/sudoers #disables error related to needing a tty for sudo, allows running without cli